C#多线程的用法8-线程间的协作AutoResetEvent_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#多线程的用法8-线程间的协作AutoResetEvent

C#多线程的用法8-线程间的协作AutoResetEvent

 2017/8/22 10:08:56  DW039  程序员俱乐部  我要评论(0)
  • 摘要:AutoResetEvent自动重置事件,与ManualResetEvent是相对的而言。它同样用于线程间同步,请对照《C#多线程的用法7-线程间的协作ManualResetEvent》进行理解。privatestaticvoidMultiThreadSynergicWithAutoResetEvent(){//自动通知方式进行线程同步AutoResetEventare=newAutoResetEvent(false);Threadthread1=newThread(()=>
  • 标签:C# 用法 多线程 线程

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

  

发表评论
用户名: 匿名