AutoResetEvent自动重置事件,与ManualResetEvent是相对的而言。它同样用于线程间同步,请对照《C#多线程的用法7-线程间的协作ManualResetEvent》进行理解。
class="brush:csharp;gutter:true;">private static void MultiThreadSynergicWithAutoResetEvent() { //自动通知方式进行线程同步 AutoResetEvent are = new AutoResetEvent(false); Thread thread1 = new Thread(() => { //线程首先WaitOne等待一个可用的通知 are.WaitOne(); //在得到通知后,自动终止通知向后传递,所以下面就是线程工作的代码内容 Console.WriteLine("thread1 work"); //线程执行完必要功能后,再次启动通知并向后传递 are.Set(); }); thread1.Start(); Thread thread2 = new Thread(() => { are.WaitOne(); Console.WriteLine("thread2 work"); }); thread2.Start(); are.Set(); }