C#:判斷當前線程所處狀態&委托


 

  1、線程狀態ThreadState

  在C#中,線程對象Thread使用ThreadState屬性指示線程狀態,它是帶Flags特性的枚舉類型對象。

  ThreadState 為線程定義了一組所有可能的執行狀態。一旦線程被創建,它就至少處於其中一個狀態中,直到終止。在公共語言運行時中創建的線程最初處於Unstarted狀態中,而進入運行時的外部線程則已經處於Running狀態中。通過調用 Start可以將Unstarted線程轉換為Running狀態。並非所有的  ThreadState值的組合都是有效的;例如,線程不能同時處於Aborted和Unstarted狀態中。

  因此判斷線程當前的狀態必須用bitmask按位運算來達到判斷目的,不能直接使用相等來判斷。

  2、C#中ThreadState中定義如下:

  3、如何判斷當前線程狀態

  1)判斷線程是否處於取消狀態

(MyThread.ThreadState & ThreadState.AbortRequested) != 0

2)判斷線程是否處於運行狀態

    這個有一點特殊,因為ThreadState.Running本身等於0,不能用&運算,所以判斷可用以下方法:

       (MyThread.ThreadState == ThreadState.Running)
 
  注:以上內容轉載自: http://blog.csdn.net/shuaihj/article/details/41315903 
 

   4、.Net 中如何啟動線程

  .net下的線程,是通過設置委托對象來初始化,啟動的。

  委托是一個繼承自多播委托的類型,委托對象可以賦值的方式指向一個或多個方法。 

1 public void Test()
2 {
3     Thread thread = new Thread(new ThreadStart(ThreadMethod));
4     thread.Start();//開辟一個線程,執行方法
5 }

 

 

  推薦:http://zhoufoxcn.blog.51cto.com/792419/187031/ 這篇文章主要講的是使用委托啟動線程(帶參、無參啟動以及優劣比較)。

  本文僅做為筆記使用,若需轉載,請轉載文章原文!

 


免責聲明!

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



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