C# ManualResetEvent 类的用法
先说是一下 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 类的用法相关推荐
- python 包用法_Python 基础教程之包和类的用法
Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...
- 【ES6】JS类的用法class
[ES6]JS类的用法class 一.概述 二.构造函数constructor 三.静态方法与静态变量 查看更多ES6教学文章: 参考文献 引言:由于JS之前一直没有特有的class来定义类的语法,E ...
- string类具体用法
string类具体用法 二话不说上代码 #include<string> #include<iostream> #include<algorithm> using ...
- php分析图片水印,PHP开发的文字水印,缩略图,图片水印实现类与用法示例
本文实例讲述了PHP开发的文字水印,缩略图,图片水印实现类与用法.分享给大家供大家参考,具体如下: 1.实现类ImageToTest.class.php参考代码 class ImageToTest { ...
- Android -------GestureDetector类的用法
GestureDetector类的用法 2010-10-18 14:39:02| 分类: android|字号 订阅 GestureDetector类定义了许多触摸事件.包括 1.boole ...
- Handle类的用法
android中Handle类的用法 当我们在处理下载或是其他需要长时间执行的任务时,如果直接把处理函数放Activity的OnCreate或是OnStart中,会导致执行过程中整个Activity无 ...
- C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)
C# "Thread类Suspend()与Resume()已过时" 解决方法(利用ManualResetEvent类) 参考文章: (1)C# "Thread类Suspe ...
- 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )
文章目录 I . 枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名类 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 VI . 获取枚举常量的成员变量 VII . 调用枚举常 ...
- jsonutil java_Java实现的JSONUtil工具类与用法示例
本文实例讲述了Java实现的JSONUtil工具类与用法.分享给大家供大家参考,具体如下: import java.util.HashMap; import java.util.Map; import ...
- as3corelib系列教程之一:ArrayUtil类的用法
as3corelib是一个非常不错的开源开发包,里面封装的类用起来都非常方便,不过可惜的是放出来的下载包里面只有一个关于JSON的Sample,这对于初学者尤其是Flex初学者来说相当的不方便.感谢H ...
最新文章
- 编译原理扫描程序,判断当前输入的程序中程序调用的函数是那个函数原型
- c++ 全局变量初始化的一点总结
- Android 对象在堆中吗,Android内存机制—堆和栈
- C#7.0之ref locals and returns (局部变量和引用返回)
- 如何存储和恢复 HTML5 Canvas 状态
- 程序员该不该主动提加薪?| 畅言
- HDU1865 1sting【递推】
- 这些solidworks工程图模板知识你都知道吗?
- java计算机毕业设计房产中介管理系统源码+系统+lw+数据库+调试运行
- P4568 飞行路线
- 分布式环境下限流方案的实现
- 二十五、PHP内核探索:常量的实现 ☞ 脱离C语言和数学讨论底层都是耍流氓
- Python-docx 读写 Word 文档:插入图片、表格,设置表格样式,章节,页眉页脚等
- Android选择颜色,尺码联动
- C语言decompose函数,R语言时间序列应用(decompose、Holt-Winters初步)
- 计算机启动显示安装程序正在启动服务,安装程序正在启动服务需要多久
- python控制windows窗口、并输入数据_python win32api win32gui win32con 窗口句柄 发送消息 常用方法 键盘输入...
- r1音箱原生系统更改服务器,某讯R1音响——版本升级和安装DLNA细致教程
- HDLBits学习------Problem 127~130
- 使用MQTTBox连接Thingsboard