C#多线程的用法8

时间:2023-01-30 12:29:33

AutoResetEvent自动重置事件,与ManualResetEvent是相对的而言。它同样用于线程间同步,请对照《C#多线程的用法7-线程间的协作ManualResetEvent》进行理解。

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();
}