我有一个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'
按钮关闭应用程序时,这可能会杀死进程?
3条答案
按热度按时间hs1rzwqc1#
所以你的进程在你关闭后仍然是活的。这通常意味着你有一个线程来保持它的活动。下面是你如何跟踪它。
首先,在调试器中附加到它:
的数据
的
的
现在打开线程列表:
的
双击您在此处看到的每个线程:
然后你会看到线程当前正在做什么:
这就是阻止应用程序关闭的原因。必须退出该循环才能退出应用程序(或者,将
Thread.IsBackground
设置为true
)。mi7gmzs62#
环境.退出(0);
字符串
成功完成后返回0。
yc0p9oo03#
如果你在2023年使用Visual Studio进行开发,你可以可视化线程/任务:
1.明智地选择一些断点,这些断点将引导您完成应用程序的 Package
1.开始调试
1.选择“Windows”>“并行堆栈”这很好地显示了哪些任务(仍)在运行
1.现在逐步执行代码,看看您在哪里遇到了问题。