可以重复多次ManualResetEvent吗?
就像这样:
receivedDone.WaitOne();
//something here
receivedDone.Set(); //this go back to receivedDone.WaitOne()
//when executing the second time will loop the receivedDone.Set() and not returning
//again to receivedDone.WaitOne(); like I wanted.,所以我的问题是:
是否可以像循环一样多次执行相同的WaitOne();并设置();?
编辑:
我有一个按钮,当我点击它时,运行一个函数来启动我的tcpclient。
在此之后,当我在缓冲区上接收到消息时,等待来自receivedDone.WaitOne();的服务器的一些响应,它将转到receivedDone.Set();。这可以工作一次,但我希望使用相同的WaitOne()和Set()多次;
这个是可能的吗?
发布于 2019-05-17 17:02:29
顾名思义,ManualResetEvent必须手动重置。就像一扇门。它是用
ManualResetEvent ev = new ManualResetEvent(false); // The door is closed或
ManualResetEvent ev = new ManualResetEvent(true); // The door is open一个线程,如果是打开的,调用WaitOne通过门,否则在门上等待直到它打开。
一声呼唤
ev.Set();打开门,呼唤着
ev.Reset();关上门。
就我理解您的问题而言,AutoResetEvent会帮助更多的人。或者更好地创建一个异步函数,该函数继续进行TCP调用并返回结果。
https://stackoverflow.com/questions/56173500
复制相似问题