我有一个带有多线程问题的Windows应用程序C#4.0,当我关闭应用程序时,该过程仍然存在,无论我做什么,我必须这样做:
environment.exit(1);
或过程无法关闭,
问题是如果我执行了environment.exit(1),那么application.restart()将不起作用。
任何想法如何杀死进程然后重启?
答案 0 :(得分:4)
使用调试器。关闭主窗口后,使用Debug + Break All。调试+ Windows +线程。查看您在其中列出的线程的调用堆栈,以找到阻止程序终止的线程。
答案 1 :(得分:3)
确保让所有工作线程在后台运行(在启动它们之前将IsBackground
设置为true)。后台线程不会阻止进程退出。
答案 2 :(得分:0)
线程必须在退出应用程序之前终止,否则挂起的线程将消耗CPU和/或内存
答案 3 :(得分:0)
您可以输入以下命令完全退出应用程序:
Application.Exit();
完全重启应用程序:
Application.Restart();