WaitHandle——使用AutoResetEvent

简介: 区别ManualResetEvent:      使用AutoResetEvent和使用ManualResetEvent是完全相同的,只有一点区别:在使用autoresetevent时,在调用waitOne后,会自动执行到一个reset方法。



区别ManualResetEvent


     使用AutoResetEvent和使用ManualResetEvent是完全相同的,只有一点区别:在使用autoresetevent时,在调用waitOne后,会自动执行到一个reset方法。

  AutoResetEvent的waitone相当于将ManualResetEvent.waitone和reset合并为一个方法执行。

  需要注意:autoresetevent的waitone和reset合并为了一个原子操作;


  代码示例:



namespace 使用AutoResetEvent
{
    class Program
    {

        AutoResetEvent mre = new AutoResetEvent(false);


        static void Main(string[] args)
        {
            Thread.CurrentThread.Name = "main ";
            Program p = new Program();
            Thread worker = new Thread(p.ThreadEntry);
            worker.Name = "worker";
            worker.Start();

            Console.WriteLine("main :start worker");
            p.mre.Set();
            Thread.Sleep(100);

            Console.WriteLine("main:worker go...");
            p.mre.Set();
            Thread.Sleep(100);


        }

        void ThreadEntry() {

            int i = 0;
            string name = Thread.CurrentThread.Name;
            while (i<10)
            {
                mre.WaitOne();   //这里实际上是waitone和reset************
                Console.WriteLine("{0}:{1}---{2}",name ,i,DateTime .Now .Millisecond);
                i++;

            }
        
        
        }
    }
}







目录
相关文章
|
网络安全 开发工具 git
Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa(解决的两种方式)
Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa(解决的两种方式)
6012 0
Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa(解决的两种方式)
|
5月前
|
安全 Java 编译器
JD-GUI,java反编译工具及原理: JavaDecompiler一个Java反编译器
Java Decompiler (JD-GUI) 是一款由 Pavel Kouznetsov 开发的图形化 Java 反编译工具,支持 Windows、Linux 和 Mac Os。它能将 `.class` 文件反编译为 Java 源代码,支持多文件标签浏览、高亮显示,并兼容 Java 5 及以上版本。JD-GUI 支持对整个 Jar 文件进行反编译,可跳转源码,适用于多种 JDK 和编译器。其原理基于将字节码转换为抽象语法树 (AST),再通过反编译生成代码。尽管程序可能带来安全风险,但可通过代码混淆降低可读性。最新版修复了多项识别错误并优化了内存管理。
2984 1
|
存储 机器学习/深度学习 数据可视化
解析exe文件
如何使用`objdump`工具解析exe文件,包括exe文件的组成、`objdump`的用法以及如何查看exe文件的节头信息和完整内容。
556 0
解析exe文件
|
算法 安全 物联网
关于SM2、SM3、SM4、SM9这四种国密算法
本文介绍了四种国密算法——SM2、SM3、SM4和SM9。SM2是一种基于椭圆曲线的非对称加密算法,用于数据加密和数字签名;SM3是哈希算法,用于数字签名和消息完整性验证;SM4是对称加密算法,用于数据加密和解密;SM9是基于标识的非对称密码算法,适用于物联网环境中的数据安全和隐私保护。
8756 0
|
C# 开发者 Windows
震撼发布:全面解析WPF中的打印功能——从基础设置到高级定制,带你一步步实现直接打印文档的完整流程,让你的WPF应用程序瞬间升级,掌握这一技能,轻松应对各种打印需求,彻底告别打印难题!
【8月更文挑战第31天】打印功能在许多WPF应用中不可或缺,尤其在需要生成纸质文档时。WPF提供了强大的打印支持,通过`PrintDialog`等类简化了打印集成。本文将详细介绍如何在WPF应用中实现直接打印文档的功能,并通过具体示例代码展示其实现过程。
1272 0
|
XML 缓存 前端开发
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
从 CORS 到 Spring MVC 跨源资源共享(CORS) 即 Cross-Origin Resource Sharing,也常被译为跨域资源共享。作为 W3C 的标准,它允许浏览器向跨源服务器发起请求,克服了 AJAX 只能同源使用的限制。
792 0
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
|
小程序
微信小程序里判断是否关注了公众号
微信小程序开发过程中,经常会遇到需要判断当前用户是否关注了公众号的业务需求,但是微信并没有提供直接判断是否关注公众号的接口,这边提供一种方法,适合就用,不适合也别喷哦。
974 0
微信小程序里判断是否关注了公众号
|
对象存储
尝试增加OSS客户端的超时时间
尝试增加OSS客户端的超时时间
1370 4
|
传感器 监控 物联网
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
众所周知,物联网(IoT)是近年来日益热门的技术领域之一,它的广泛应用为人们的生活和工作带来了无限可能。在物联网应用中,数据的采集和传输是至关重要的一环。DTU是一种应用于物联网数据传输的终端设备,它可以将各类传感器、数据采集单元等通过串口RS232/485传输到DTU,再由DTU转发到4G网络上传至云端。阿里云IoT HaaS 510是一款开板式DTU产品,能够帮助企业快速搭建物联网平台,并实现数据的采集和传输,那么本文就来简单分享一下。
683 1
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
|
监控 安全 网络安全
阿里云证书简介和购买流程
阿里云证书是阿里云旗下的一项安全防护服务,它为网站和应用程序提供数字证书,以保护数据传输的安全和完整性。在当今数字化时代,随着互联网的普及和用户对在线交易和数据传输安全的关注增加,使用阿里云证书对保护网站和应用程序的敏感信息进行加密和认证变得至关重要。 阿里云证书采用了最新的加密算法和安全协议,确保传输过程中的数据不会被未经授权的人员窃取或篡改。采用阿里云证书可以有效防止黑客攻击、网络钓鱼等安全威胁,并增强用户对网站和应用程序的信任度。