Mutex
M. waitone ();
Try {
Console. writeline ("START Resource Access (thread = {0})", threadnum );
Thread. Sleep (500 );
Console. writeline ("stop resource access (thread = {0})", threadnum );
}
Finally {
M. releasemutex ();
}
Autoresetevent
Autoresetevent myresetevent = new autoresetevent (false );
Myresetevent. waitone ();
// Waite other thread1 complete
Myresetevent. waitone ();
// Waite other thread2 complete
Myresetevent. waitone ();
Run current thread;
// In other thread run
Myresetevent. Set ();
Automatic Reset () will be executed before the next waitone. That is, when the second myresetevent. waitone () is executed, the current thread is terminated, waiting for myresetevent. Set () manualresetevent
Manualresetevent manualevent = new manualresetevent (false );
// Waite other thread1 complete
Manualevent. waitone ();
// Waite other thread2 complete
Manualevent. waitone ();
Run current thread;
// In other thread run
Manualevent. Set ();
Manual reset () is required. If reset () is not executed, the second waitone () will not wait again.