執行緒學習2 Thread類

2021-09-06 03:31:36 字數 1972 閱讀 5836

thread 類

使用thread類可以建立和控制線程,thread類有如下方法:

start():啟動執行緒;

sleep(int):靜態方法,暫停當前執行緒指定的毫秒數;

abort():通常使用該方法來終止乙個執行緒;

suspend():該方法並不終止未完成的執行緒,它僅僅掛起執行緒,以後還可恢復;

resume():恢復被suspend()方法掛起的執行緒的執行。

基本用法:

靜態的方法:

using

system.threading;

namespace

class

program

static

void

main(

string

args)}}

using

system.threading;

namespace

class

program

static

void

main(

string

args)}}

為了獲得當前執行緒的名稱,可以使用靜態屬性thread.currentthread,獲取當前執行緒的thread例項,訪問name屬性,進行讀取訪問。

using

system.threading;

namespace

class

program}}

定義乙個執行緒類

我們可以將

thread

類封裝在乙個

mythread

類中,以使任何從

mythread

繼承的類都具有多執行緒能力。

mythread

類的**如下:

using

system.threading;

namespace

abstract

class

mythread

}class

program:mythread

static

void

main(

string

args)}}

為執行緒傳遞引數

如果需要給執行緒傳遞一些資料,可以採用兩種方式。一種方式是使用帶parameterizedthreadstart委託引數的thread建構函式,另一種是建立乙個定製類,把執行緒的方法定義為例項方法,這樣就可以初始化例項的引數,之後啟動執行緒。

如果使用了parameterizedthreadstart委託,執行緒的入口點必須有乙個object型別的引數,返回型別為void。

using

system.threading;

namespace

class

program

static

void

main(

string

args)}}

要注意的是,如果使用的是不帶引數的委託,不能使用帶引數的start方法執行執行緒,否則系統會丟擲異常。但使用帶引數的委託,可以使用thread.start()來執行執行緒,這時所傳遞的引數值為null。

給新執行緒傳送資料的另一種方式是定義乙個類,將執行緒的主方法定義為類的乙個例項方法:

using

system.threading;

namespace

class

program

public

void

mythreadmethod()

static

void

main(

string

args)}}

Thread執行緒類

posted on 2011 05 03 10 45 明天陪你看海 閱讀 123 編輯收藏 說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙...

Thread執行緒類

posted on 2011 05 03 10 45 明天陪你看海 閱讀 123 編輯收藏 說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙...

Thread執行緒類

屬性說明 apartmentstate 獲取或設定此執行緒的單元狀態 currentcontext 獲取執行緒正在其中執行的當前上下文 currentthread 獲取當前正在執行的執行緒 isalive 獲取乙個值,該值指示當前執行緒的執行狀態 managedthreadid 獲取當前託管執行緒的...