首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

autoresetEvent set()步骤

2012-08-26 
autoresetEvent set()方法code:AutoResetEvent myResetEvent new AutoResetEvent(false)while(true){myR

autoresetEvent set()方法
code:

AutoResetEvent myResetEvent = new AutoResetEvent(false)

while(true){
myResetEvent.WaitOne();
.....//这里面还要调用别的方法。



试问:是不是每当myResetEvent.Set()调用了时,myResetEvent.WaitOne();后面的代码都会执行啊?不管上次的方法有没有执行完毕,只要调用set一下,就回立即执行后面的代码?

[解决办法]


如果没有执行完毕就是没回 到 waitone ,

所以那个没有在 waitone 的 线程 会继续运行执行直到 while true 回到 waitone


如果只有这个线程在 waitone 里等候, 那么因为你已经set了,他会立即通过 waitone 继续执行






[解决办法]
watione后面总要有个break吧,否则不是死循环了吗
[解决办法]
C# AutoResetEvent用法详解
[解决办法]
不管上次的方法有没有执行完毕,只要调用set一下,就回立即执行后面的代码?

不对。

事件一般用于多线程中。

myResetEvent.WaitOne(); //是等待一个信号,如果有信号就往下下次,否则就一直阻塞。

while(true)
myResetEvent.WaitOne(); //如果别处myResetEvent.Set()至少一次就能往下走。
.....//这里面还要调用别的方法。 //如果别处多set了,也得等这里做完,再回到上面,当然上一行代码不用再等了。

热点排行