WaitHandle 的使用.

 WaitHandle  是AutoRestEvent 和 ManualResetEvent 以及其它类的基类

 

WaitHandle.WaitAll(WaitHandle[],time)//等待所有元素都为终止状态

WaitHandle.WaitAny(WaitHandle[],time)  //只要一个无素非终止

 

AutoResetEvent auto = new AutoResetEvent(false); ManualResetEvent manual = new ManualResetEvent(false); Thread thread = new Thread(new ThreadStart(delegate() { Thread.Sleep(1000);//2s后设为终止状态 auto.Set(); manual.Set(); })); thread.Start(); WaitHandle[] wait = new WaitHandle[2];//不能超过64维 wait[0] = auto; wait[1] = manual; Thread.Sleep(2000);//2s后设为终止状态 //等待所有元素都为终止状态 //WaitHandle.WaitAll(wait, -1);//-1表示不超时,永远等待,返回:超时返回false,等待成功返回true,否则方法不返回 //只要一个无素非终止 int b = WaitHandle.WaitAny(wait);//-1表示不超时,永远等待,返回:超时返回258 ???,等待成功返回发出终止状态元素[索引较小]的索引,否则方法不返回 Console.WriteLine("输出C"); Console.ReadLine();

你可能感兴趣的:(.NET学习记录)