【发布时间】:2011-08-31 00:16:49
【问题描述】:
我有一个函数,我调用 thread.abort 来杀死一个线程。我知道这不是最佳实践,但是我在 dll 中调用一个函数,该函数基本上在该函数中有一个无限循环,所以我可以终止线程的唯一方法是调用线程中止。我可以调用 thread.join,但我的 gui 会卡住。我在表单应用程序和该线程中都进行了捕获,但是当我调用 thread.abort 函数时,抛出了一个异常,该异常被其中一个地方的 try 块捕获,但我的应用程序仍然崩溃。
处理 threadAbort 的正确方法是什么,以免我的应用程序崩溃。
【问题讨论】:
-
您的应用程序是如何崩溃的?抛出的这个其他异常的堆栈跟踪是什么?这个其他 dll 是托管的还是非托管的(是的,它很重要,实际上是至关重要的信息)?
标签: c# multithreading exception-handling