Wil*_*ill 4 .net c# multithreading abort
我有一个分析文件并对数据库进行事务调用的线程,每个事务都有一个审计条目作为其事务的一部分.调用Thread.Abort()来停止处理文件有什么大不了的错吗?而不是散布各处丑陋的安全点?
中止呼叫后文件将被关闭.
Mar*_*ell 10
显而易见的问题是放弃交易的风险,这可能导致不确定时间(或直到超时)的阻塞.但你可以把各种各样的东西弄得一团糟 - 不可恢复的Monitor锁,信号量等,内存泄漏等等.
Monitor
简而言之:尽可能努力避免不必中止线程,除非你确切知道它当时在做什么.而你能够知道它正在做什么的唯一方法就是它已经处于一个已知的"安全点"(使用你的术语) - 所以你也可以抛出一个例外或者其他东西让它以一种有管理的方式提升自己.
Eri*_*ert 8
最佳实践:仅在拆除过程时中止线程.
归档时间:
16 年,2 月 前
查看次数:
1571 次
最近记录:
14 年,8 月 前