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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM