WaitHandle.WaitOne 方法
来源:互联网 发布:刘诗诗 香奈儿 知乎 编辑:程序博客网 时间:2024/05/17 00:07
执行结果:
Main starting.
Work starting.
Work ending.
Main ending.
WaitOne:在一个线程MainThread中开启一个新的线程NewThread,在完成初始化并启动NewThread的操作后,调用WaitOne,则MainThread堵塞,直到在NewThread中调用Set,MainThread才继续执行。
AutoResetEvent 允许线程通过发信号互相通信。通常,此通信涉及线程需要独占访问的资源。
线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。如果 AutoResetEvent 处于非终止状态,则该线程阻塞,并等待当前控制资源的线程通过调用 Set 发出资源可用的信号。
调用 Set 向 AutoResetEvent 发信号以释放等待线程。AutoResetEvent 将保持终止状态,直到一个正在等待的线程被释放,然后自动返回非终止状态。如果没有任何线程在等待,则状态将无限期地保持为终止状态。
可以通过将一个布尔值传递给构造函数来控制 AutoResetEvent 的初始状态,如果初始状态为终止状态,则为 true;否则为 false。
通俗的来讲只有等myResetEven.Set()成功运行后,myResetEven.WaitOne()才能够获得运行机会;Set是发信号,WaitOne是等待信号,只有发了信号,等待的才会执行。如果不发的话,WaitOne后面的程序就永远不会执行。
下面我们来举一个例子:我去书店买书,当我选中一本书后我会去收费处付钱,
付好钱后再去仓库取书。这个顺序不能颠倒,我作为主线程,收费处和仓库做两个辅助线程,代码如下:
- WaitHandle.WaitOne 方法
- WaitHandle.WaitOne 方法 ()
- 慎用 WaitHandle.WaitOne(TimeSpan/int/long)
- WaitHandle.WaitOne()中的exitContext参数作用
- WaitHandle.WaitOne(int millisecondsTimeout, bool exitContext)参数释义
- WaitHandle
- .net 3.5 sp1方法this.startEvent.WaitOne
- WaitHandle.WaitAll 方法在WPF工程中的应用
- 使用WaitHandle
- \t\tC# AutoResetEvent WaitOne() Set()
- system.threading WaitHandle
- WaitHandle 的使用.
- 使用WaitHandle和其他
- WaitHandle、AutoResetEvent、ManualResetEvent整理
- WaitHandle 类 备忘
- C# WaitHandle 使用教程
- c# 多线程-异步-WaitHandle-AutoResetEvent
- C# ThreadPool and WaitHandle Sample
- arm linux下的关于time部分的说明
- 取得文件所在磁盘的扇区大小
- C++ 虚函数表 Review
- 澄清DIV+CSS设计的误区
- DetachedCriteria 查询
- WaitHandle.WaitOne 方法
- 物联网(The Internet of things) - 经济增长点(3)
- 关于在真机上字符流(InputStreamReader)不能设置字符集的问题
- 判断一个文件为文本文件还是二进制文件
- 物联网(The Internet of things) - 用途(4)
- 倒车轨迹理论实现方法
- 1_6 5个特殊的符号
- 保存一张捕获的图像
- 消息映射表