waithander就是用来阻塞当前线程的,然后通过set()方法放开
namespace waithandler
{
class Program
{
//static EventWaitHandle wait = new EventWaitHandle(true, EventResetMode.AutoReset); //自动 中止状态
static EventWaitHandle waitM = new EventWaitHandle(false, EventResetMode.ManualReset);//手动 非终止状态
static void Main(string[] args)
{
Console.WriteLine("1当前时间" + DateTime.Now);
Thread thread = new Thread(S);
thread.Start();
Thread.Sleep(3000);
//wait.Set();//将状态设置为终止状态。
waitM.Set(); //将状态设置为终止状态。
Console.Read();
}
public static void S()
{
waitM.WaitOne(3000); //非终止状态,无限制阻塞线程,不自动改变事件的终止状态
//wait.WaitOne(); //自动返回为终止状态,不阻塞线程,为同一时间
Console.WriteLine("2当前时间" + DateTime.Now);
waitM.WaitOne(3000); //前面的set()将事件手动终止状态,不进行阻塞
// wait.WaitOne(3000); //此时为非终止状态,停顿三秒
Console.WriteLine("3当前时间" + DateTime.Now);
}
}
}
未完待续。。。。。