我的应用程序中有一个名为“ FirstThread”的线程,该线程在后台运行。尝试使用“ FirstThread.Abort()”停止正在运行的线程时,它返回异常。您可以为此建议任何解决方案
if (FirstThread.ThreadState == System.Threading.ThreadState.Running)
FirstThread.Abort();
答案 0 :(得分:-1)
中止线程是一个坏主意,也是一个坏习惯,因为它可能导致许多错误。无需执行此操作,请确保您需要一个线程并准确定义其必须执行的操作,而无需执行其他任何操作。同样,您可以实现一个线程工作程序来处理您的线程。
如果您仍然不相信Thread.Abort()
是一个坏主意,则可以将异常封装在try-catch块中:
try {
Thread.Abort();
}
catch { //DO NOTHING }
但我不建议这样做。
答案 1 :(得分:-1)
通常为了避免这些异常,我使用标志。您可以创建一个名为stopFirstThread
的标志,而不是中止将标志值设置为True
的线程,并且在第一个线程内部继续检查该标志,当它变为True
时,您可以结束线程和平地。