我有一个问题,我使用C#和Window Forms在visual studio上创建了一个应用程序,但每次运行时,如果应用程序关闭(由人员手动或到达结束时),它将继续在该进程上运行计算机,所以如果我打开和关闭应用程序3次,将有3个进程激活相同的名称。我怎样才能防止这种情况发生?到目前为止,关闭它的唯一方法是使用Window Task Manager手动关闭它,这很痛苦......
有什么想法吗?
答案 0 :(得分:1)
如果你想杀死所有进程并退出应用程序,那么首先你需要在后台杀死线程
Application.ExitThread();
然后退出应用程序
Environment.Exit();
答案 1 :(得分:0)
您可以使用Saif的强制后台线程中止的答案,但我建议您更好地管理线程。如果你的线程运行了很长一段时间,你应该有一个标志(可以从代码中的任何地方访问的布尔值)告诉线程它们应该停止运行。这是比
更安全的方法Application.ExitThread();
因为它允许您刷新和关闭流,断开套接字连接或整理你在线程中所做的任何事情。
答案 2 :(得分:-1)
基于此问题,您可以检查应用程序是否在应用程序启动时运行。这样,只有在没有运行的情况下才会启动该过程:
我要检查一下记事本:
Process[] pname = Process.GetProcessesByName("notepad");
if (pname.Length == 0)
{
//The application is not running. Start your process here
}
else
{
//Your application is running. Do nothing
}