【发布时间】:2012-06-20 09:54:21
【问题描述】:
我有一个 WPF 应用程序,关闭应用程序后,它的进程 app.exe *32 仍在任务管理器的进程列表中运行。
我需要关闭它,因为当我对我的代码进行编辑时出现以下错误 -
Unable to copy file "obj\x86\Release\frontEndTest.exe" to "bin\Release\app.exe". The process cannot access the file 'bin\Release\app.exe' because it is being used by another process.
我知道在here.之前有人问过这类问题
但是,将我的 Assembly.cs 更改为 -
[assembly: AssemblyVersion("2.0.0")]
[assembly: AssemblyFileVersion("2.0.0")]
我想如果我要找到 Window closed 事件并在事件中放置类似 - Process.GetCurrentProcess().Kill(); 的东西,这样当用户从表单右上角的红色 'x' 按钮关闭应用程序时这可能会杀死这个过程?
【问题讨论】:
-
在您的主窗口关闭后,您很可能有一些线程仍在运行。你使用
BackgroundWorkers 或Threads 吗?如果是这样,您将不得不以某种方式通知他们终止。 -
线程分为两类:后台和非后台。当父进程死亡时,后台线程会自动终止;非后台线程将使父进程保持活动状态。也许您有一个或多个线程应该是后台线程?
-
我明白了,我怎么知道哪些线程正在运行以及如何终止它们?