c 中Thread的基本使用

2021-07-12 01:02:28 字數 2450 閱讀 6458

下面再對此進行詳細描述.

thread類的建構函式有2類:

一種是不帶引數(threadstart 委託) --

public thread(threadstart start); 

另一種是帶引數(parameterizedthreadstart 委託) --

public thread(parameterizedthreadstart start);

parameterizedthreadstart 委託簽名:

public delegate void parameterizedthreadstart(object obj);

示例:1. 不帶引數:

// 定義執行緒方法:

private static void threadmain()

// 呼叫:

thread mythread = new thread(threadmain);

mythread.start();

2. 帶引數:

// 定義執行緒方法:

private static void mainthreadwithparameters(object o)

", d.message);

}public struct data

// 呼叫:

var data = new data ;

thread t2 = new thread(mainthreadwithparameters);

t2.start(data);  // 傳入引數

3. 通過定義類傳遞引數:

// 定義存放資料和執行緒方法的類:

public class mythread

public void threadmethod()

", this.message);  }}

// 呼叫

var obj = new mythread("info");

thread mythread = new thread(obj.threadmethod); //threadstart 委託

mythread.start(); 

.net框架是c#的執行時類庫,.net是乙個多執行緒的環境。執行緒(thread)是程序中乙個單一的順序控制流程。執行緒是程序中的實體。乙個程序可以有多個執行緒,乙個執行緒必須有乙個父程序。

執行緒一般具有read,blocking和operation三種基本狀態。由三種基本狀態,衍化出五種執行緒的基本操作。首先,derive,執行緒是在程序內派生出來的。其次,schedule,選擇乙個ready的執行緒進入operation狀態。第三,block,如果乙個執行緒在執行過程中需要等待某個事件發生則被阻塞。第四,unblock,如果事件開始,則該執行緒被unblock,進入ready佇列。第五,finish,執行緒結束,它執行過的暫存器上下文及堆疊內容會被釋放。

新執行緒是新產生的執行緒物件,它還沒有分配資源。因此只能用start()或close()方法。

runable狀態就是執行緒在start()方法執行後,得到執行緒所必需資源並且呼叫run()方法執行。

not runable非執行狀態是發生以下事件而進入的狀態,suspend()方法被呼叫,sleep()方法被呼叫,執行緒使用wait()來等待條件變數,執行緒處於i/o等待。

dead是當run()方法返回,或別的執行緒呼叫stop()方法,執行緒進入dead狀態。下邊是thread的兩個簡單例子。

using system;

using

system.threading;

public

class

******thread

value",

result.tostring());

} static

void

main()

}

1

using

system;

2using

system.threading;34

public

class

threadexample5"

,i);

11 thread.sleep(0

);12}13

}14public

static

void

main()

1524 console.writeline("

main thread:call join(),to wait until threadproc ends.");

25t.join();

26 console.writeline(main thread:threadproc.join has returned.press enter to end program."

);27

console.readline();28}

29 }

C 中如何使用Thread

執行緒是程序中的最小執行單元,多執行緒是指在給定時間內擁有多個執行緒的能力,並且可以排程它們從而在某一時刻處理多個操作,微軟的 net framework 提供了 thread 來幫助我們完成多執行緒開發。thread 程式設計 要想使用 thread,需要在程式中引用 system.threadi...

C 中的多執行緒使用 Thread 類

好文,現在c 已經建議擯棄使用 suspend,resume 暫停 恢復執行緒,也盡量少用 abort方法中斷乙個執行緒.建議使用執行緒的同步手段有 mutex manualresetevent autoresetevent,monitor.下面再對此進行詳細描述.thread類的建構函式有2類 一...

C 中的多執行緒使用 Thread 類

現在c 已經建議擯棄使用 suspend,resume 暫停 恢復執行緒,也盡量少用 abort方法中斷乙個執行緒.建議使用執行緒的同步手段有 mutex manualresetevent autoresetevent,monitor.下面再對此進行詳細描述.thread類的建構函式有2類 一種是不...