我有一个分析文件并对数据库进行事务调用的线程,每个事务都有一个审计条目作为其事务的一部分。调用 Thread.Abort() 来停止文件处理有什么大错吗?而不是到处散布丑陋的安全点?
文件将在 Abort 调用后关闭。
最佳答案
明显的问题是放弃交易的风险,这可能导致不确定时间(或直到超时)的阻塞。但是您可以让所有排序一团糟——不可恢复的Monitor
锁、信号量等、内存泄漏等。
简而言之:尽可能避免不得不中止一个线程,除非您确切地知道它当时在做什么。你知道它在做什么的唯一方法是它是否已经在一个已知的“安全点”(使用你的术语) - 所以你不妨抛出一个异常或其他东西并让它以一种有管理的方式提升自己.
关于c# - .NET 中的线程中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180033/