先说是一下 ManualResetEvent 是一线程用来控制别一个线程的信号。大家可以把它看成 操作系统原理中说到的pv操作

如下图所说是 ManualResetEvent 对象起一个信使的作用。

ManualResetEvent 对象的两个控制方法。
1、this.manualEvent.Reset(); //将事件状态设置为非终止状态,导致线程阻止。
2、this.manualEvent.Set(); //将事件状态设置为终止状态,允许一个或多个等待线程继续。

说了这么多光说不做还真没有用,接下来看代码!

class MyThread{Thread t = null;ManualResetEvent manualEvent = new ManualResetEvent(true);//为trur,一开始就可以执行private void Run(){while (true){this.manualEvent.WaitOne();Console.WriteLine("这里是  {0}", Thread.CurrentThread.ManagedThreadId);Thread.Sleep(5000);}}public void Start(){this.manualEvent.Set();}public void Stop(){this.manualEvent.Reset();}public MyThread(){t = new Thread(this.Run);t.Start();}}

在 main 方法中要用到上面的类

static void Main(string[] args){MyThread myt = new MyThread();while (true){Console.WriteLine("输入 stop后台线程挂起 start 开始执行!");string str = Console.ReadLine();if (str.ToLower().Trim() == "stop"){myt.Stop();}if (str.ToLower().Trim() == "start"){myt.Start();}}}

原理就说完了我们来看一下程序运行的结果!

文章转载自C# ManualResetEvent 类的用法,感谢作者 蒋乐兴 提供好文章

C# ManualResetEvent 类的用法相关推荐

  1. python 包用法_Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...

  2. 【ES6】JS类的用法class

    [ES6]JS类的用法class 一.概述 二.构造函数constructor 三.静态方法与静态变量 查看更多ES6教学文章: 参考文献 引言:由于JS之前一直没有特有的class来定义类的语法,E ...

  3. string类具体用法

    string类具体用法 二话不说上代码 #include<string> #include<iostream> #include<algorithm> using ...

  4. php分析图片水印,PHP开发的文字水印,缩略图,图片水印实现类与用法示例

    本文实例讲述了PHP开发的文字水印,缩略图,图片水印实现类与用法.分享给大家供大家参考,具体如下: 1.实现类ImageToTest.class.php参考代码 class ImageToTest { ...

  5. Android -------GestureDetector类的用法

    GestureDetector类的用法 2010-10-18 14:39:02|  分类: android|字号 订阅 GestureDetector类定义了许多触摸事件.包括     1.boole ...

  6. Handle类的用法

    android中Handle类的用法 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无 ...

  7. C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)

    C# "Thread类Suspend()与Resume()已过时" 解决方法(利用ManualResetEvent类) 参考文章: (1)C# "Thread类Suspe ...

  8. 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )

    文章目录 I . 枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名类 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 VI . 获取枚举常量的成员变量 VII . 调用枚举常 ...

  9. jsonutil java_Java实现的JSONUtil工具类与用法示例

    本文实例讲述了Java实现的JSONUtil工具类与用法.分享给大家供大家参考,具体如下: import java.util.HashMap; import java.util.Map; import ...

  10. as3corelib系列教程之一:ArrayUtil类的用法

    as3corelib是一个非常不错的开源开发包,里面封装的类用起来都非常方便,不过可惜的是放出来的下载包里面只有一个关于JSON的Sample,这对于初学者尤其是Flex初学者来说相当的不方便.感谢H ...

最新文章

  1. 编译原理扫描程序,判断当前输入的程序中程序调用的函数是那个函数原型
  2. c++ 全局变量初始化的一点总结
  3. Android 对象在堆中吗,Android内存机制—堆和栈
  4. C#7.0之ref locals and returns (局部变量和引用返回)
  5. 如何存储和恢复 HTML5 Canvas 状态
  6. 程序员该不该主动提加薪?| 畅言
  7. HDU1865 1sting【递推】
  8. 这些solidworks工程图模板知识你都知道吗?
  9. java计算机毕业设计房产中介管理系统源码+系统+lw+数据库+调试运行
  10. P4568 飞行路线
  11. 分布式环境下限流方案的实现
  12. 二十五、PHP内核探索:常量的实现 ☞ 脱离C语言和数学讨论底层都是耍流氓
  13. Python-docx 读写 Word 文档:插入图片、表格,设置表格样式,章节,页眉页脚等
  14. Android选择颜色,尺码联动
  15. C语言decompose函数,R语言时间序列应用(decompose、Holt-Winters初步)
  16. 计算机启动显示安装程序正在启动服务,安装程序正在启动服务需要多久
  17. python控制windows窗口、并输入数据_python win32api win32gui win32con 窗口句柄 发送消息 常用方法 键盘输入...
  18. r1音箱原生系统更改服务器,某讯R1音响——版本升级和安装DLNA细致教程
  19. HDLBits学习------Problem 127~130
  20. 使用MQTTBox连接Thingsboard

热门文章

  1. CSS背景图片自适应大小
  2. STM32实现NRF24L01通信
  3. 计算机组成原理:P5-存储器(下)
  4. 内容太干准备好水:项目进度管理S曲线制作方法新探
  5. 安卓学习pdf_【手机电脑全平台通用】手把手教你制作可点读日语PDF!
  6. QCC300x 芯片ota升级PSKey 操作方法
  7. 饿了么ui自定义表头内容
  8. javascript编写的抽奖小程序
  9. FusionChartsFree在JSP中的用法
  10. c++ CImage类的常用命令