第一、简单介绍

ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 ManualResetEvent 置于非终止状态,此线程可被视为控制 ManualResetEvent。调用 ManualResetEvent 上的 WaitOne 的线程将阻止,并等待信号。
当控制线程完成活动时,它调用 Set 以发出等待线程可以继续进行的信号。并释放所有等待线程。一旦它被终止,ManualResetEvent 将保持终止状态(即对 WaitOne 的调用的线程将立即返回,并不阻塞),直到它被手动重置。可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,
如果初始状态处于终止状态,为 true;否则为 false。
第二、代码演示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class MyThread
{
Thread t = null;
ManualResetEvent manualEvent = new ManualResetEvent(true);//为trur,一开始就可以执行
private void Run()
{
while (true)
{
this.manualEvent.WaitOne();
Console.WriteLine("线程id:{0}", Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
}
}
public void Start()
{
this.manualEvent.Set();
}
public void Stop()
{
this.manualEvent.Reset();
}
public MyThread()
{
t = new Thread(this.Run);
t.Start();
}
}
class Program
{
static void Main(string[] args)
{
MyThread myt = new MyThread();
while (true)
{
Console.WriteLine("输入 stop 后台线程挂起 start 开始执行!");
string str = Console.ReadLine();
if (str.ToLower().Trim() == "stop")
{
Console.WriteLine("线程停止运行...\n");
myt.Stop();
}
if (str.ToLower().Trim() == "start")
{
Console.WriteLine("线程开启运行...\n");
myt.Start();
}
}
}
}
}
运行测试结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# C#
# ManualResetEvent
# C#中多线程ManualResetEvent 与 AutoResetEvent 区别
# C# AutoResetEvent的具体使用方法
# C#中AutoResetEvent控制线程用法小结
# C#多线程之线程通讯(AutoResetEvent)
# C#使用AutoResetEvent实现同步
# C# ManualResetEvent用法详解
# C# ManualResetEvent使用方法详解
# C# AutoResetEvent和ManualResetEvent的实现示例
# 可以通过
# 则为
# 大家多多
# 到它
# 就可以
# 挂起
# 即对
# 完成后
# 发信号
# 被视为
# 布尔值
# class
# csharp
# Collections
# System
# brush
# Text
# Threading
# Tasks
# namespace
相关文章:
如何高效生成建站之星成品网站源码?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
定制建站方案优化指南:企业官网开发与建站费用解析
无锡营销型网站制作公司,无锡网选车牌流程?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
制作网站的软件免费下载,免费制作app哪个平台好?
北京网站制作公司哪家好一点,北京租房网站有哪些?
Android使用GridView实现日历的简单功能
如何做网站制作流程,*游戏网站怎么搭建?
如何高效利用亚马逊云主机搭建企业网站?
如何彻底卸载建站之星软件?
香港网站服务器数量如何影响SEO优化效果?
如何基于云服务器快速搭建网站及云盘系统?
公众号网站制作网页,微信公众号怎么制作?
如何快速搭建响应式可视化网站?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
建站主机默认首页配置指南:核心功能与访问路径优化
家具网站制作软件,家具厂怎么跑业务?
如何注册花生壳免费域名并搭建个人网站?
香港服务器如何优化才能显著提升网站加载速度?
如何用wdcp快速搭建高效网站?
如何选择香港主机高效搭建外贸独立站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
盘锦网站制作公司,盘锦大洼有多少5G网站?
建站VPS选购需注意哪些关键参数?
上海网站制作开发公司,上海买房比较好的网站有哪些?
Android自定义listview布局实现上拉加载下拉刷新功能
如何快速使用云服务器搭建个人网站?
网站制作企业,网站的banner和导航栏是指什么?
如何用5美元大硬盘VPS安全高效搭建个人网站?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
建站之星安装提示数据库无法连接如何解决?
如何用AWS免费套餐快速搭建高效网站?
如何通过WDCP绑定主域名及创建子域名站点?
如何高效配置香港服务器实现快速建站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
学校为何禁止电信移动建设网站?
小程序网站制作需要准备什么资料,如何制作小程序?
孙琪峥织梦建站教程如何优化数据库安全?
招商网站制作流程,网站招商广告语?
常州企业网站制作公司,全国继续教育网怎么登录?
如何在IIS中配置站点IP、端口及主机头?
如何正确选择百度移动适配建站域名?
如何构建满足综合性能需求的优质建站方案?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
在线制作视频网站免费,都有哪些好的动漫网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。