using system;
using system.threading;
namespace threadtest}
}; public class ******
catch (threadstateexception)
return 0;}}
} 這段程式包含兩個類alpha和******,在建立執行緒othread時我們用指向alpha.beta()方法的初始化了threadstart**(delegate)物件,當我們建立的執行緒othread呼叫othread.start()方法啟動時,實際上程式執行的是alpha.beta()方法:
alpha oalpha = new alpha();
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異常。
程式最後得到的結果將如下圖:
C 的多執行緒機制初探 2 C 教程
下面我們就動手來建立乙個執行緒,使用thread類建立執行緒時,只需提供執行緒入口即可。執行緒入口使程式知道該讓這個執行緒幹什麼事,在c 中,執行緒入口是通過threadstart delegate 來提供的,你可以把threadstart理解為乙個函式指標,指向執行緒要執行的函式,當呼叫threa...
C 的多執行緒機制探索
c 的多執行緒機制探索 與threadpool類不同,timer類的作用是設定乙個定時器,定時執行使用者指定的函式,而這個函式的傳遞是靠另外乙個 物件timercallback,它必須在建立timer物件時就指定,並且不能更改。定時器啟動後,系統將自動建立乙個新的執行緒,並且在這個執行緒裡執行使用者...
C 的多執行緒機制探索 3 1
c 的多執行緒機制探索 3.1 2007 04 03 15 51 三.執行緒的同步和通訊 生產者和消費者 假 設這樣一種情況,兩個執行緒同時維護乙個佇列,如果乙個執行緒對佇列中新增元素,而另外乙個執行緒從佇列中取用元素,那麼我們稱新增元素的執行緒為生產者,稱取用 元素的執行緒為消費者。生產者與消費者...