DLL中的线程未正确关闭。我能做什么?

时间:2018-04-13 09:16:41

标签: c# multithreading dll

我有一个来自我的供应商的DLL,在关闭其内部线程时遇到问题,每当我调用他们的Close / Dispose方法时都会创建一个ThreadAbortException。但是,Close / Dispose调用返回正常,所以我怀疑异常被捕获但未在DLL中处理。

如果没有报告错误并由供应商修复,我可以自行关闭线程吗?我试图看看是否可以使用以下代码识别线程:

ProcessThreadCollection threads = Process.GetCurrentProcess().Threads;

for (int i = 0; i < threads.Count; i++)
{
   ProcessThread pt = threads[i];       
   Debug.WriteLine($"{i+1}: ID: {pt.Id}, ");
}

但我还没有找到我想要的确切话题。我使用Debug Thread视图知道它的位置,但我无法通过C#代码找到该位置。

是否可以在DLL中找到该线程然后以某种方式尝试终止该线程,以便关闭时应用程序不会挂起?

0 个答案:

没有答案