English 中文(简体)
使用Thread.Abort()有什么错误
原标题:What s wrong with using Thread.Abort()
  • 时间:2009-10-13 10:01:57
  •  标签:

因此,我知道你不应使用。

Thread.Abort()

但我从未得到很好的解释。 是否有业绩处罚或一些隐蔽的 go?

我知道你可以无视/吞 the<代码>。 ThreadAbortException(含义)

最佳回答

除了这里的所有其他良好答复外,请允许我补充道,没有任何保障要求听起来。 偷走实际上会破坏有关线索。 有可能(尽管并非特别容易)“硬化”一种防bor。 举例来说,如果你认为自己是敌对的法典,那么,如果你read忙,那么敌对的法典就会抵制自己的毁灭。

如果您有长期操作,涉及你所不拥有的、必须加以明确的准则,那么,这样做的正确方式就是将这一守则放在自己的process上,而不是放在自己的处。 (最好在这一过程中有一个高度安全限制的遗体。) 那么,你就能够清楚地杀死这一进程。

简言之,Thread。 失窃最能说明设计不良,可能不可靠,而且极其危险。 无论代价如何,都应避免这种做法;你甚至认为read子流产的唯一时间是某种“突然关闭”法,你试图尽可能清洁地粉碎 app。

问题回答

因为如果你知道底线处于可以流产的安全状态,那么你肯定能够安排更好的沟通,并且可以清醒地撤离。

透镜可能已经走了24小时,正在改变一些共同国家,并read。 偷窃将打破僵局,使共同国家腐败。

它更容易伤害 yourself。 正如其他人所说的那样,这在法典中提出了一个例外,可以在任何时候出现。 如果你期望这样做,并且以在任何时间通常处理这一例外的方式行事,但有些人则会这样做。

Monitor.Enter(obj);
// some code - if exception is raised here, then the lock isn t released
Monitor.Exit(obj)

IDisposable someCriticalResource = GetResource();
// some code - if exception is raised here, then the object isn t disposed
someCriticalResource.Dispose();

此外,如果你与团队中的许多人重新合作,除非你们有良好的法典审查,否则你不能保证你正在从事的法典的质量。 因此,在《刑法》中,让人们记住针对例外情形的强硬守则,就是一个好的想法。

In short. Any IDisposable object may not be disposed. Any locked object may not be unlocked. Anything that must be 100% performed will never be done.

当你把Thread.Abort()引向另一个透镜时,这种透镜被注入。 如果你重新加入该法典,就会在定义明确的国家妥善处理。 问题在于,如果你在每一个案件中都不会 l,那么,如果你更喜欢安全,而不是叫read。 绕过其他通道不是一个好的想法。

Thread.Abort stops your thread in an uncontrolled fashion. thread.Abort will throw an exception, which will cause that your thread stops immediatly.

这是错误的:在大多数情况下,你想要 stop笑地停止你重新开展的行动。 例如,如果你正在执行一项合作行动,你可能希望在结束read之前完成目前的行动,使你的系统保持稳定状态。

校对。 相对而言,目标线上出现了例外。 与此同时,目标已接近,可以开展一些关键行动,增加一个例外可能会打破你的申请状态。





相关问题
热门标签