AutoResetEvent



        AutoResetEvent autoEvent 
=   new  AutoResetEvent( true );        
        
public   void  DowlLoadIds()
        {
            
bool  f  =  autoEvent.Set();
            
for  ( int  i  =   0 ; i  <   30 ; i ++ )
            {
                
// System.Threading.Thread t = new Thread(delegate() { DownIdCallBack(autoEvent); });
                
// t.Start();
                TimerCallback timerDelegate  =   new  TimerCallback(DownIdCallBack);
                System.Threading.Timer t 
=   new  System.Threading.Timer(timerDelegate, autoEvent,  0 200 );
            }
        }

        
int  i  =   0 ;
        
private   void  DownIdCallBack( object  o)
        {
            var autoEvent 
=  (AutoResetEvent)o;
            autoEvent.WaitOne();
            
// System.Threading.Interlocked.Increment(ref i);
            i ++ ;
            
if  (i  >   20 )
            {
                i 
=   0 ;
                autoEvent.Reset();
                
// autoEvent.WaitOne();
                 return ;
            }
            
// Trace.WriteLine(System.DateTime.Now.ToString());
            Trace.WriteLine(i.ToString());
            autoEvent.Set();
        }

 

你可能感兴趣的:(event)