AutoResetEvent.How to use it

转载 2007年09月16日 21:28:00
AutoResetEvent类:通知正在等待的线程已发生事件,允许线程通过发信号互相通信。通常,此通信涉及线程需要独占访问的资源。  
   
   
  class   MyMainClass  
          {  
                  //Initially   not   signaled.  
              const   int   numIterations   =   100;  
              static   AutoResetEvent   myResetEvent   =   new   AutoResetEvent(false);  
              static   int   number;  
               
              static   void   Main()  
                  {  
                    //Create   and   start   the   reader   thread.  
                    Thread   myReaderThread   =   new   Thread(new   ThreadStart(MyReadThreadProc));  
                    myReaderThread.Name   =   "ReaderThread";  
                    myReaderThread.Start();  
   
                    for(int   i   =   1;   i   <=   numIterations;   i++)  
                    {  
                          Console.WriteLine("Writer   thread   writing   value:   {0}",   i);  
                          number   =   i;  
                           
                          //Signal   that   a   value   has   been   written.  
                          myResetEvent.Set();  
                           
                          //Give   the   Reader   thread   an   opportunity   to   act.  
                          Thread.Sleep(0);  
                    }  
   
                    //Terminate   the   reader   thread.  
                    myReaderThread.Abort();  
              }  
   
              static   void   MyReadThreadProc()  
              {  
                    while(true)  
                    {  
                          //The   value   will   not   be   read   until   the   writer   has   written  
                          //   at   least   once   since   the   last   read.  
                          myResetEvent.WaitOne();  
                          Console.WriteLine("{0}   reading   value:   {1}",   Thread.CurrentThread.Name,   number);  
                    }  
              }  
          }   
 

相关文章推荐

What is reflection and how to use it in CSharp ?

What is reflection and how to use it in CSharp ?

How to Best Use Collaboration IT

How to Best Use Collaboration IT

How to build & install GLFW 3 and use it in a Linux project

GLFW3 This may not be the correct place for this “question”, indeed it is actually an answer, or I...

C_C++随机数据生成(is how to use but not how it work)

随机数据的生成

how to use htmleditor

  • 2015-07-19 18:17
  • 4.43MB
  • 下载

How+to+use+Simulink

  • 2012-11-26 17:07
  • 1020KB
  • 下载

What is a cronjob and how do I use it?

The cron daemon is a long running process that executes commands at specific dates and times. To sch...

How to use microsoft access

  • 2014-05-23 08:38
  • 896KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)