多執行緒 Thread ,其實很簡單!

2022-04-25 12:42:02 字數 2773 閱讀 1886

目錄:

1:執行緒簡介

2:怎麼操作執行緒

3:thread的常用方法

4:

簡單的獲獎機

5:應用程式域

執行緒是windows任務排程的最小單位。執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器(棧指標、程式計數器等),但**區是共享的,即不同的執行緒可以執行同樣的函式。

作用:

讓計算機"同時"做多件事情,節約時間。

多執行緒可以讓乙個程式「同時」處理多個事情。

後台執行程式,提高程式的執行效率,也不會使主介面出現無響應的情況

解決問題:程序是乙個資源的擁有者,因而在程序的建立、撤銷、和切換的過程中,系統必須為之付出較大的時空開銷,限制了併發程度的進一步提高

怎麼操作執行緒?

建立執行緒:

1:初始化

thread thread = new thread(threadworkfun);//threadworkfun是乙個委託
2:

new thread(() =>

).start();

開啟執行緒:

thread.start();
乙個具體的例子:

//

static

void main(string

args)

static

void

threadwork()

}

結果:結果不確定,threadworkfun什麼時候執行,由作業系統決定,

注意:當執行緒指向的方法體執行完成的時候就自動銷毀了

thread的常用屬性和方法

abort():threadabortexception

in the thread on which it is invoked, to begin the process of terminating the thread.'>在呼叫此方法的執行緒上引發 threadabortexception,

終止執行緒--盡量少用,因為會丟擲異常,如果拋異常會極大影響效率。

getdomain():返回當前執行緒正在其中執行的當前域。

priority:設定執行緒的優先順序   thread.priority = threadpriority.highest;

managedthreadid:int num= thread.managedthreadid;//執行緒的編號,可以用於區分不同的執行緒

currentthread.name :獲得當前執行緒的名字

join:執行緒等待             

thread.join();//

哪個執行緒執行當前**的執行緒等待這個執行緒執行完成

isbackground:獲取或設定乙個值,該值指示某個執行緒是否為後台執行緒,值預設是false:前台執行緒:只有所有的前台執行緒都關閉才能完成程式關閉。後台執行緒:只要所有的前台執行緒結束,後台執行緒自動結束

多執行緒實現的搖獎機

namespace

搖獎器

public label label = new

label();

public dictionary dic = new dictionary();

bool

isture;

public

void

initlabel()

public

void

initname()

}private

void form1_load(object

sender, eventargs e)

private

void btnbegin_click(object

sender, eventargs e)

;label.invoke(setlabeltext);

}thread.sleep(

100);//

當前執行緒休息一下

} }).start();

}else}}

}

應用程式域:只有dotnet程式才會有的概念

應用程式域就是隔離exe。可以載入多個程式集,

乙個程序可以有多個應用程式域

乙個應用程式域可以跑多個執行緒

乙個執行緒同一時間只可以執行在乙個應用程式域裡面,但執行緒可以穿透應用程式域

例子:

static

void main(string

args)

LINQ其實很簡單

會寫這一篇是有原因的,不只一次有人問我,要不要學 linq呢?linq 看起來很難耶 為何要放棄以前的 sql來學 linq呢?到底linq 的意義是什麼 反正就是有很多的問題,說真的,由於最近也沒時間寫本 linq 的書,但是工作累了順手寫寫 blog 還可以,所已針對 linq 這個主題,和大家...

LINQ其實很簡單

會寫這一篇是有原因的,不只一次有人問我,要不要學linq呢?linq看起來很難耶 為何要放棄以前的sql來學linq呢?到底linq的意義是什麼?反正就是有很多的問題,說真的,由於最近也沒時間寫本linq的書,但是工作累了順手寫寫blog還可以,所已針對linq這個主題,和大家有一些分享。其實對於v...

快樂其實很簡單

快樂,乙個簡單而不失文雅的詞語,可真正能體會到其中真諦的又有多少呢?我們來一起 下快樂的真諦吧!快樂,其實每個人對快樂的理解都不一樣,每個人能體會到的快樂程度也不一樣。比如 放假就會讓學生覺得很快樂,週末休息會讓忙碌了一周的上班族快樂,喜歡追星的人見到偶像很快樂等等,你會發現快樂就在我們身邊,快樂並...