重新启动Windows窗体应用程序

问题描述:

我有一个Windows应用程序C#4.0 multithreadings问题是,当我关闭应用程序,进程停留在,无论我做什么,所以我必须这样做:重新启动Windows窗体应用程序

environment.exit(1); 

或进程wouldnt关闭,

问题是如果我执行environment.exit(1)然后application.restart()将无法正常工作。

任何想法如何杀死进程,然后重新启动?应用程序创建

+0

杀死所有的线程程序催生了? – spender 2010-12-05 13:25:19

+5

不应该先尝试修复多线程问题吗? – ZippyV 2010-12-05 13:26:01

线程必须退出应用程序,否则CPU和/或存储将被挂线程消耗

+0

有一些线程必须运行所有的时间,他们正在监听一个端口并从中获取数据,所以我可以放弃关闭事件中的所有线程,但仍然不会结束进程。 – Stacker 2010-12-05 13:34:47

确保创建在后台运行所有的工作线程前终止(设置IsBackground为真在开始之前)。后台线程不会阻止进程退出。

使用调试器。关闭主窗口后,使用Debug + Break All。调试+ Windows +线程。查看您在此处列出的线程的调用堆栈,以查找阻止该程序终止的线程。

您可以键入完全退出应用程序:

Application.Exit(); 

对于完全重新启动应用程序:

Application.Restart();