首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ManualResetEvent (WaitOne和Set)多次重复

ManualResetEvent (WaitOne和Set)多次重复
EN

Stack Overflow用户
提问于 2019-05-16 17:11:32
回答 1查看 630关注 0票数 0

可以重复多次ManualResetEvent吗?

就像这样:

代码语言:javascript
复制
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()多次;

这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-17 17:02:29

顾名思义,ManualResetEvent必须手动重置。就像一扇门。它是用

代码语言:javascript
复制
ManualResetEvent ev = new ManualResetEvent(false);  // The door is closed

代码语言:javascript
复制
ManualResetEvent ev = new ManualResetEvent(true);  // The door is open

一个线程,如果是打开的,调用WaitOne通过门,否则在门上等待直到它打开。

一声呼唤

代码语言:javascript
复制
ev.Set();

打开门,呼唤着

代码语言:javascript
复制
ev.Reset();

关上门。

就我理解您的问题而言,AutoResetEvent会帮助更多的人。或者更好地创建一个异步函数,该函数继续进行TCP调用并返回结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56173500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档