c# - .NET 中的线程中止

标签 c# .net multithreading abort

我有一个分析文件并对数据库进行事务调用的线程,每个事务都有一个审计条目作为其事务的一部分。调用 Thread.Abort() 来停止文件处理有什么大错吗?而不是到处散布丑陋的安全点?

文件将在 Abort 调用后关闭。

最佳答案

明显的问题是放弃交易的风险,这可能导致不确定时间(或直到超时)的阻塞。但是您可以让所有排序一团糟——不可恢复的Monitor 锁、信号量等、内存泄漏等。

简而言之:尽可能避免不得不中止一个线程,除非您确切地知道它当时在做什么。你知道它在做什么的唯一方法是它是否已经在一个已知的“安全点”(使用你的术语) - 所以你不妨抛出一个异常或其他东西并让它以一种有管理的方式提升自己.

关于c# - .NET 中的线程中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180033/

相关文章:

c++ - 如何从 OpenMP 单 block 广播结果

c# - 性能 - str_01 == str_02 vs (object)str_01 == (object)str_02

c# - 是否可以这样做。排序(p => p.ID);或类似的东西?

c# - 是否可以删除您的类(class)未添加的 VB.NET EventHandler?

c# - LINQ 在哪里为它的 IEnumerable<T> 结果重载 Console.WriteLine()

java - java中多线程的使用

c# - 在图像处理中使用 Alpha

string.Padding() 的 C# 控制台文本对齐问题

javascript - 将 javascript 正则表达式转换为 asp.net vb

c# - 在控制台应用程序中同步来自不同线程的事件