Dot-Net
我什麼時候會使用 AutoResetEvent 和 ManualResetEvent 而不是 Monitor.Wait()/Monitor.Pulse()?
他們似乎都實現了相同的目的。我什麼時候會選擇其中之一?
當您有一個執行緒正在等待多個事件中的一個或所有事件來做某事時,請使用這些事件。
如果您想通過限制可以訪問的執行緒數來限制對資料結構的訪問,請使用監視器。
監視器通常保護資源,而事件會告訴您正在發生的事情,例如應用程序關閉。
此外,可以命名事件(參見 OpenExisting 方法),這允許它們用於跨不同程序的同步。