C 語法 多執行緒程式設計 Thread

2021-08-01 23:11:37 字數 1842 閱讀 2791

一、thread 類:(system.threading.thread)

表示託管執行緒,執行在.net平台之上的,每乙個thread物件代表乙個執行緒,多執行緒開發就有多個thread物件。每乙個執行緒都對應著乙個任務(方法)。

二、示例**;該窗體有3個控制項乙個label,兩個button

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

using system.threading;

namespace csharp窗體練習

private void form1_load(object sender, eventargs e)

private int count = 0;

private void btncounter_click(object sender, eventargs e)

) , count.tostring(),i);}}

});objthread.isbackground = true;

objthread.start();

count++;

}private void btnclear_click(object sender, eventargs e)

}}

首先第一步是建立thread 物件: thread objthread=new thread(《引數》);thread構造方法中有引數,可以選中thread按f1檢視幫助文件.翻開這些引數的定義:

public

delegate

void parameterizedthreadstart(

object obj

)

parameterizedthreadstart其實就是乙個無返回值帶引數的乙個委託。

public

delegate

void threadstart()

當然這就是乙個無引數的委託。總結起來就是thread構造方法裡要放乙個委託...所以上述使用了匿名方法當然也可以使用lambda表示式在匿名方法裡寫要操作的內容。

之後別忘了把執行緒isbackground 屬性設為true,預設為前台執行緒,設為true時為後台執行緒。前台執行緒與後台執行緒的區別是,應用程式必須在所有前台執行緒完成後才關閉,而後台執行緒,應用程式可以不考慮後台執行緒是否執行完,應用程式關閉後台執行緒自動關閉。如果你關閉了某個應用程式,但是在程序中發現該應用程式還在執行,說明該程式的前台程序還在執行。要麼是程式設計的時候不注意,也有可能是流氓軟體。

最後把執行緒start就可以了。

但是,在子執行緒中無法直接訪問主線程的視覺化控制項,主線程和子執行緒就像各部門一樣,做自己的事情,但是想隨意訪問內部訊息是不允許的。雖然不能直接訪問但是能間接訪問吶,便可以使用invoke()方法來實現。   invoke(,object  args) ,第乙個引數是通過委託呼叫的方法,之後的引數都是傳給這委託的引數的值。在此之前判斷invokerequired 是否必須呼叫invoke方法。

invoke方法第乙個引數我用了action。action和func都內建了委託,action為無返回值的匿名方法,而func有返回值   func《引數1,引數2...,引數n,返回值》,除最後乙個是返回值,之前的都是要傳給方法的引數.

C 多執行緒程式設計 使用Thread類建立執行緒

使用thread類可以建立和控制線程。使用thread類需要引入系統的system.threading命名空間。下面簡單示例 using system using system.collections.generic using system.linq using system.text using...

C 多執行緒庫thread

參考 目前來公司工作兩年了,發現很多時候因為自己的能力廣度不足最後直接影響到產品質量。就比如自己來的第一年編寫資源池管理模組 因為自己相關知識不夠充分,編寫流水線式的 讓整個資源池建立過程十分緩慢。這絕對不是乙個優秀的開發人員能夠接受的。目前c c的 多執行緒程式設計和網路程式設計還處於空白狀態,從...

C 使用thread類進行多執行緒程式設計

c 11中引入了乙個用於多執行緒操作的thread類,簡單多執行緒示例 include include include using namespace std void thread01 void thread02 int main system pause 輸出 兩個子執行緒並行執行,join函式...