天天看點

《C#多線程程式設計實戰(原書第2版)》——1.5 終止線程

本節書摘來自華章出版社《c#多線程程式設計實戰(原書第2版)》一書中的第1章,第1.5節,作者(美)易格恩·阿格佛溫(eugene agafonov),黃博文 黃輝蘭 譯,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

本節将講述如何終止線程的執行。

為了學習本節,你需要安裝visual studio 2015。除此之外無需其他準備。本節的源代碼放置在booksampleschapter1recipe4目錄中。

請執行以下步驟來了解如何終止線程的執行:

1.啟動visual studio 2015。建立一個新的c#控制台應用程式項目。

2.在program.cs檔案中加入以下using指令:

《C#多線程程式設計實戰(原書第2版)》——1.5 終止線程

3.在main方法下面加入以下代碼片段:

《C#多線程程式設計實戰(原書第2版)》——1.5 終止線程
《C#多線程程式設計實戰(原書第2版)》——1.5 終止線程

4.在main方法中加入以下代碼片段:

《C#多線程程式設計實戰(原書第2版)》——1.5 終止線程

5.運作程式。

當主程式和單獨的數字列印線程運作時,我們等待6秒後對線程調用了t.abort方法。這給線程注入了threadabortexception方法,導緻線程被終結。這非常危險,因為該異常可以在任何時刻發生并可能徹底摧毀應用程式。另外,使用該技術也不一定總能終止線程。目标線程可以通過處理該異常并調用thread.resetabort方法來拒絕被終止。是以并不推薦使用abort方法來關閉線程。可優先使用一些其他方法,比如提供一個cancellationtoken方法來取消線程的執行。在第3章中我們會讨論該方法。