来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=349
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com
成都创新互联公司是一家专注网站建设、网络营销策划、微信平台小程序开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十余年以来,已经为数千家展览展示各业的企业公司提供互联网服务。现在,服务的数千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
代码在同级目录中有,这里就不贴出来了。
图1
从下图中可以看出,实例化ManualResetEvent对象时,传的是true,则将初始状态设置为终止。程序首次运行,两个线程都在持续运行,如图3所示
图2
图3
输入reset命令,执行Reset方法,将事件状态设置为非终止状态,导致线程阻止。所以两个线程方法都停止运行了
输入set命令,执行Set方法,将事件状态设置为终止状态,允许一个或多个等待线程继续,所以2个线程又都开始运行了。
![]
结论:WaitOne方法在这里很关键,阻止当前线程,直到当前 System.Threading.WaitHandle 收到信号。ManualResetEvent对象可以作为一个全局变量,多个线程可以访问它,如果ManualResetEvent对象实例化传的是true时,或者ManualResetEvent对象被执行Set方法时,写了.WaitOne的线程方法将继续执行;如果ManualResetEvent对象被执行Reset方法时,写了.WaitOne的线程方法将停止执行,一直等待,知道被执行了Set方法为止。
验证:如下图所示,注释了WaitOne方法,即使执行了Reset方法,由于没有WaitOne的控制,这两个线程一样的在运行。
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=349
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com
文章标题:以1个实例讲解ManualResetEvent的作用
分享链接:https://www.cdcxhl.com/article12/jipodc.html
成都网站建设公司_创新互联,为您提供响应式网站、软件开发、建站公司、网站收录、手机网站建设、外贸建站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联