天天看点

《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章中我们会讨论该方法。