当前位置:  开发笔记 > 编程语言 > 正文

To CurrentThread.Abort或不是CurrentThread.Abort

如何解决《ToCurrentThread.Abort或不是CurrentThread.Abort》经验,为你挑选了1个好方法。

我已经看到了一些具有类似这样的线程过程的示例.

    private void ThreadProc()
    {
        while (serviceStarted)
        {
            // do some work

            Thread.Sleep(new TimeSpan(0, 0, 5));
        }

        Thread.CurrentThread.Abort();
    }

最后Abort()真的有必要吗?

反对召唤有很多论据 Abort()

    一旦程序退出 - 预计它已经自行清理.

    调用Abort()抛出异常,这通常比退出过程更耗费资源.

我想解释为什么这是一个好的做法或者不是一个好的做法.



1> Zachary Yate..:

调用Thread.Abort()确实会引发异常,如果您正在编写将被重用的代码(或基础库的一部分),则其他开发人员很难处理ThreadAbortExcpetions.

本文将介绍可靠性最佳实践.

我总是听说调用Thread.Join()是一种更好的方法,如果你可以等到线程完成处理.

我不知道是否有人认为这是一个好习惯.它可能导致死锁(因为抛出异常时未正确清理非托管资源)

这是关于它的另一篇文章,以及处理该问题的其他方法.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有