zoukankan      html  css  js  c++  java
  • 灵活使用多线程编程——EventWaitHandle类

    EventWaitHandle类

         表示一个线程同步事件。该类存在于mscorlib.DLL中。

         EventWaitHandle类允许线程通过发信号的方式互相通信。 通常,一个或多个线程在EventWaitHandle上被阻止,直到一个未阻止的线程通过调用Set()方法,来释放一个或多个被阻止的线程。线程可以通过调用SignalAndWait()方法(该方法为静态函数)以原子操作的方式,向EventWaitHandle发出信号,然后在它上面阻止。

         以终止的EventWaitHandle的行为取决于它的重置模式,在释放单个等待线程后,用EventResetMode.AutoReset标志创建的EventWaitHandle在终止时会自动地重置,用EventResetMode.ManualReset标志创建的EventWaitHandle一直保持终止状态,直到它的Reset函数被调用。

         自动重置时间提供对资源的独占访问,如果没有线程等待时,自动重置事件处于终止状态。则该事件一直保持终止状态,直到某个线程尝试在该事件上等待,该事件释放线程,并立即重置,以阻止后面的线程。

         手动重置事件类似于入口,当事件不处于终止状态时,在该事件上等待的线程则被阻止,当事件处于终止状态时,所有等待的线程均被释放,而事件一直保持终止状态(即后边的线程不阻止),直到它的Reset方法被调用,如果一个线程必须完成某项活动时,其他线程才能继续执行,则使用手动重置事件。

         EventWaitHandle对象可以与其静态函数:WaitAll和WaitAny方法一起使用。

     MSDN示例:

    Code
  • 相关阅读:
    JS简单实现滚动自动加载新内容(懒加载)
    npm install报错Unhandled rejection RangeError: Maximum call stack size exceededill install
    原生CSS设置网站主题色—CSS变量赋值
    JS将日期转为距现在的时间长度
    JS将日期转为距现在的时间长度
    axios简单理解
    axios简单理解
    简单配置umiJS学习笔记
    npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX
    基于实体模型开发主题管理简析
  • 原文地址:https://www.cnblogs.com/yangyang8848/p/1403434.html
Copyright © 2011-2022 走看看