using System;
using System.Threading;
namespace ResetEvent{
public class EntryPoint{
static AutoResetEvent auto = new AutoResetEvent(false);
static ManualResetEvent manual = new ManualResetEvent(false);
static EventWaitHandle eventWait = new EventWaitHandle(false,EventResetMode.AutoReset);
public static void Main(string[] args){
eventWait = auto;
ManualResetEventMethodRun();
// AutoResetEventMethodRun();
}
#region AutoResetEventMethod
static void AutoResetEventMethodRun(){
Thread t = new Thread(AutoResetEventMethod);
Console.WriteLine("AutoResetEvent Main Begin...");
t.Start();
Thread.Sleep(5000);
auto.Set();
// Thread.Sleep(5000);
Console.WriteLine("AutoResetEvent Main End...");
Console.Read();
}
static void AutoResetEventMethod(){
Console.WriteLine("AutoResetEvent Sub Begining......");
auto.WaitOne();
// auto.Set();
Console.WriteLine("AutoResetEvent to do something 1......");
auto.WaitOne();
Console.WriteLine("AutoResetEvent to do something 2......");
Console.WriteLine("AutoResetEvent Sub Ending......");
}
#endregion
#region ManualResetEventMethod
static void ManualResetEventMethodRun(){
Thread t = new Thread(ManualResetEventMethod);
Console.WriteLine("ManualResetEventMethod Main Begin...");
t.Start();
Thread.Sleep(5000);
manual.Set();
// Thread.Sleep(5000);
Console.WriteLine("ManualResetEventMethod Main End...");
Console.Read();
}
static void ManualResetEventMethod()
{
Console.WriteLine("ManualResetEventMethod Sub Begining......");
manual.WaitOne();
Console.WriteLine("ManualResetEventMethod to do something 1......");
manual.Reset();
manual.WaitOne();
Console.WriteLine("ManualResetEventMethod to do something 2......");
Console.WriteLine("ManualResetEventMethod Sub Ending......");
}
#endregion
}
}
转载于:https://www.cnblogs.com/zhangchenliang/archive/2012/08/23/2653268.html