zoukankan      html  css  js  c++  java
  • C# 多线程的阻塞和继续

      在工作中,会遇到需求多线程处理相应的业务需求,最典型的包括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#多线程

  • 相关阅读:
    利用 runtime,解决多次点击相同 button,导致重复跳转的问题-b
    dbcp数据库连接池管理
    dbutil组件的常见用法
    事务的概念及常用方法
    jdbc链接基础
    MySQL数据约束和关联查询
    mysql基本操作语句
    jsp常用标签和标签库及javaBean规范
    EL表达式
    会话过程保存数据对象cookie和session
  • 原文地址:https://www.cnblogs.com/lyyzhi/p/13192047.html
Copyright © 2011-2022 走看看