摘要:
你可能在上篇文章中深入浅出多线程系列之十二:双向信号和竞赛 注意到了这个模式:两个Waiting 循环都要下面的构造:lock(_locker){while(!_flag)Monitor.Wait(_locker);_flag=false;}在这里_flag被另一线程设置为true。这是,从作用上讲,这里在模仿AutoResetEvent。如果我们将 _flag = false;去掉,那么我们就得到了一个基本的ManualResetEvent.让我们使用Wait和Pulse来为ManualResetEvent完成剩余的代码吧。 readonlyobject_locker=newobject() 阅读全文