在c#中,執行緒物件thread使用threadstate屬性指示執行緒狀態,它是帶flags特性的列舉型別物件。
threadstate 為執行緒定義了一組所有可能的執行狀態。一旦執行緒被建立,它就至少處於其中乙個狀態中,直到終止。在公共語言執行時中建立的執行緒最初處於unstarted狀態中,而進入執行時的外部執行緒則已經處於running狀態中。通過呼叫 start可以將unstarted執行緒轉換為running狀態。並非所有的threadstate值的組合都是有效的;例如,執行緒不能同時處於aborted和unstarted狀態中。
因此判斷執行緒當前的狀態必須用bitmask按位運算來達到判斷目的,不能直接使用相等來判斷。
定義threadstate如下:
1.判斷執行緒是否處於取消狀態
a.錯誤的判斷
(mythread.threadstate == threadstate.abortrequested)
b.正確的判斷
(mythread.threadstate & threadstate.abortrequested) != 0
2.判斷執行緒是否處於執行狀態
這個有一點特殊,因為threadstate.running本身等於0,不能用&運算,所以判斷可用以下方法:
(mythread.threadstate == threadstate.running)
C 中如何判斷執行緒當前所處的狀態
原文在c 中如何判斷執行緒當前所處的狀態 在c 中,執行緒物件thread使用threadstate屬性指示執行緒狀態,它是帶flags特性的列舉型別物件。threadstate 為執行緒定義了一組所有可能的執行狀態。一旦執行緒被建立,它就至少處於其中乙個狀態中,直到終止。在公共語言執行時中建立的執...
C 中如何判斷執行緒當前所處的狀態
原文在c 中如何判斷執行緒當前所處的狀態 在c 中,執行緒物件thread使用threadstate屬性指示執行緒狀態,它是帶flags特性的列舉型別物件。threadstate 為執行緒定義了一組所有可能的執行狀態。一旦執行緒被建立,它就至少處於其中乙個狀態中,直到終止。在公共語言執行時中建立的執...
C 中判斷執行緒的狀態
在c 中,執行緒物件thread使用threadstate屬性指示執行緒狀態,它 是帶flags特性的列舉型別物件。threadstate 為執行緒定義了一組所有可能的執行狀態 一旦執行緒被建立,它就至少處於其中乙個狀態中 直到終止。在公共語言執行時中建立的執行緒最初處於unstarted狀態中,而...