---------------------- windows phone 7手機開發、.net培訓、期待與您交流! ----------------------
在上面的文章中讓大家了解了下多執行緒的相關概念,對多執行緒有了乙個大致的印象,在接下來的文章中我會陸續的給大家繼續總結多執行緒中所要用到的知識,一定要把多執行緒早日的學號,早日的進入我們心中的黑馬訓練營!
下面我們就動手來建立乙個執行緒,使用
thread
類建立執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒幹什麼事) 在
c#中,執行緒入口是通過
threadstart
**(delegate
)來提供的,你可以把
threadstart
理解為乙個函式指標,指向執行緒要執行的函式,當呼叫
thread.start()
方法後,執行緒就開始執行
threadstart
所代表或者說指向的函式。
開啟你的
vs.net
,新建乙個控制台應用程式(
),編寫完全控制乙個執行緒的**示例:
using
system;
using
system.threading;
namespace
threadtest
}};
public
class
******
catch
(threadstateexception)
return0;
}}}
這段程式包含兩個類
alpha
和******
,在建立執行緒
othread
時我們用指向
alpha.beta()
方法的初始化了
threadstart
**(delegate
)物件,當我們建立的執行緒
othread
呼叫othread.start()
方法啟動時,實際上程式執行的是
alpha.beta()
方法:
alpha oalpha = newalpha();
thread othread =new thread(new threadstart(oalpha.beta));
othread.start();
然後在main()
函式的while
迴圈中,我們使用靜態方法
thread.sleep()
讓主線程停了
1ms,這段時間
cpu轉向執行執行緒
othread
。然後我們試圖用
thread.abort()
方法終止執行緒
othread
,注意後面的
othread.join()
,thread.join()
方法使主線程等待,直到
othread
執行緒結束。你可以給
thread.join()
方法指定乙個
int型的引數作為等待的最長時間。之後,我們試圖用
thread.start()
方法重新啟動執行緒
othread
,但是顯然
abort()
方法帶來的後果是不可恢復的終止執行緒,所以最後程式會丟擲
threadstateexception
異常。
這篇文章就是教大家怎麼來操控乙個執行緒,多多練習文章中的**,相信我們會很好的掌握好多執行緒,接下來的文章繼續給打家總結多執行緒的知識會給大家帶來相關的例項來認識我們的多執行緒我們一起努力!
----------------------windows phone 7手機開發、.net培訓、期待與您交流! ----------------------
黑馬程式設計師 多執行緒學習
asp.net android io開發s net培訓 期待與您交流!13.多執行緒 sleep和wait去別 執行權 正在被cpu處理 執行資格 可以被cpu處理,在處理佇列中排隊 wait 可指定等待的時間,不指定須由notify或notifyall喚醒。執行緒會釋放執行權,且釋放鎖。sleep...
黑馬程式設計師 多執行緒學習
a.啟動執行緒 顧名思義,啟動執行緒 就是新建並啟動乙個執行緒的意思,如下 可實現 thread threadmyfirst new thread new threadstart count 其中的 count 是將要被新執行緒執行的函式。threadstart為委託 b.殺死執行緒 殺死執行緒 就...
黑馬程式設計師 多執行緒
windows phone 7手機開發 net培訓 期待與您交流!一 程序與執行緒 l 程序 乙個執行的程式就是乙個程序,程序包括執行中的程式和程式需要用到的記憶體和系統資源 乙個程序至少有乙個執行緒,乙個程序中多個執行緒可以併發執行 l 執行緒 程式中的乙個執行流,每個執行緒都有自己的專有暫存器 ...