• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#多线程的阻塞和继续

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  在工作中,会遇到需求多线程处理相应的业务需求,最典型的包括Socket的通信。
  多线程处理里,就会考虑到,哪个线程先运转,哪个线程后运转的情况。
  这里我介绍一下,运用ManualResetEvent类来对线程进行堵塞和持续操作。
  它有三个重要的办法:Reset、Set和WaitOne。
  1、首先介绍一下它的构造函数:
  publicManualResetEvent(boolinitialState);
  参数initialState,假如为true,则将初始状况设置为停止;假如为false,则将初始状况设置为非停止。
  这是什么意思呢?它的意思是:假如为false时,初始化ManaulResetEvent目标为非停止状况,当有线程调用ManaulResetEvent的WaitOne()办法时,该线程将进入堵塞状况。
  假如改为true,则会初始化ManaulResetEvent目标为停止状况,当有线程调用ManaulResetEvent的WaitOne()办法时,该线程可以持续履行后面的操作。c#
  2、Reset()办法
  Reset办法,它会将ManualResetEvent的目标设置为非停止状况,告诉调用ManaulResetEvent的WaitOne()办法的线程:此处将堵塞线程。
  3、Set()办法
  Set办法与Reset刚好相反,当有线程调用Set()办法时,它会告诉包括ManaulResetEvent的WaitOne()办法的线程:此处改为了停止状况,程序可以持续运转了。
  来源:C#多线程


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#访问MySql数据库(通过MySql.Data)发布时间:2022-07-10
下一篇:
C#有没有什么办法可以判断DataGridView是否有行被选中发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap