考虑一个控制台应用程序,它在一个单独的线程中启动一些服务。 所有它需要做的是等待用户按Ctrl + Cclosures它。 以下哪个方法是更好的方法? static ManualResetEvent _quitEvent = new ManualResetEvent(false); static void Main() { Console.CancelKeyPress += (sender, eArgs) => { _quitEvent.Set(); eArgs.Cancel = true; }; // kick off asynchronous stuff _quitEvent.WaitOne(); // cleanup/shutdown and quit } 或者,使用Thread.Sleep(1): static bool _quitFlag = false; static void Main() { Console.CancelKeyPress += delegate { _quitFlag = true; }; […]
我已经阅读了这个文件,我想我明白了。 当代码通过event.WaitOne() , AutoResetEvent重置,但ManualResetEvent不会。 它是否正确?