|
|
1
5
一般来说,第一种方法更可取。 编写始终能够优雅地处理ThreadAbortException的代码很难(如果不是不可能的话)。异常可能发生在线程所做的任何事情的中间,所以有些情况很难处理。 例如,异常可能发生在创建FileStream对象之后,但在将引用分配给变量之前。这意味着您有一个应该处理的对象,但是对它的唯一引用在堆栈的某个地方丢失了。。。 |
|
|
2
2
如果可以,我会尽量避免使用Thread.Abort。 Abort的问题在于它可能发生在(几乎)任何一行执行代码中,并可能导致一些“有趣的”行为(读:bug)。 Intead我更喜欢在我的代码上有一个退出点,检查事件或变量,看看它是否应该停止运行并正常退出。 |
|
3
2
当然,如果终止事件是预期的,那么它不是一个例外(根据术语的严格定义),因此您应该使用第一种方法。优雅的退出也表明你处于控制之中。 虽然异常是有用的,而且在某些情况下是必要的,但它们可以而且确实会被过度使用。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |