一、1. 執行緒是什麼,為什麼使用執行緒不贅述
2. 使用執行緒要引入命名空間 system.threading;
3. 執行緒函式通過委託(threadstart,parameterizedthreadstart)傳遞,可以不帶引數,也可以帶object引數(只能有乙個引數),可以用乙個類或結構體封裝引數。
4. 新開乙個執行緒,執行緒函式通過委託傳遞,方式很多。如下
private void button1_click(objectsender, eventargs e)
private void run1()
thread.sleep(500);
}private void run2(objectmny)
thread.sleep(500);
messagebox.show(money.tostring());
}5.執行緒常用方法
5.1 建立並啟動乙個執行緒,run作為要執行的方法,執行緒狀態變為running
thread t1 = new
thread(new
threadstart(run));
t1.start();
5.2 執行緒掛起一段時間(3秒),執行緒狀態改為waitsleepjoin,然後繼續執行(狀態running)。即執行緒暫停3秒
t1.sleep(3*1000);
5.3 終止執行緒,在呼叫此方法的執行緒t1引發 threadabortexception,以開始終止此執行緒的過程。
呼叫此方法通常會終止執行緒,執行緒狀態變為stopped。abort之前最好判斷下執行緒當前狀態,用到isalive屬性
if (t1.isalive) //如果此執行緒已經開始但尚未正常終止或中止,則為true,否則為false。
//如果abort乙個尚未啟動的執行緒,該執行緒將中止start 呼叫。
如果abort被阻止或正在休眠的執行緒,該執行緒中斷然後終止。
5.4 設定優先順序。分為5個優先順序:highest,abovenormal,normal,belownormal,lowest,優先順序從高到低,但是作業系統不保證遵循這個優先順序
t1.priority =threadpriority.highest; //先設定優先順序,再start
常用多執行緒方法
reentrantlock類 synchronized關鍵字,屬於悲觀鎖。可重入鎖,即遞迴鎖。指在同一執行緒內,外層函式獲得鎖之後,內層遞迴函式仍然可以獲得該鎖。作用 防止在同一執行緒中多次獲取鎖而導致死鎖發生。j a.util.concurrent.atomic包下的atomicreference...
C 多執行緒程式設計
一 thread 基礎 程序 當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。執行緒 執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的函式 方...
C 多執行緒程式設計
乙個程序通常定義為程式的乙個例項。在win32中,程序佔據4gb的位址空間。與它們在ms dos和16位windows作業系統中不同,win32程序是沒有活力的。這就是說,乙個win32程序並不執行什麼指令,它只是佔據著4gb的位址空間,此空間中有應用程式exe檔案的 和資料。exe需要的任意dll...