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#多线程

  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/lyyzhi/p/13192047.html
Copyright © 2011-2022 走看看