.NET中的ManualResetEvent和AutoResetEvent有什么区别?

我已阅读关于此的文档,我想我明白了。 当代码通过event.WaitOne()AutoResetEvent重置,但ManualResetEvent不会。

它是否正确?


是。 这就像收费站和门的区别。 ManualResetEvent是需要手动关闭(重置)的门。 AutoResetEvent是一个收费站,允许一辆车在下一辆车可以通过之前自动关闭。


试想一下, AutoResetEvent WaitOne()Reset()作为一个原子操作来执行。


简短的答案是肯定的。 最重要的区别是AutoResetEvent只允许一个等待线程继续。 另一方面,ManualResetEvent将保持允许多个线程同时连续运行,直到您告诉它停止(重置它)。

链接地址: http://www.djcxy.com/p/29327.html

上一篇: What is the difference between ManualResetEvent and AutoResetEvent in .NET?

下一篇: What is the most elegant way to insert objects between array elements?