应用程序退出后在计算机上处理 运行
Process running on computer after application exit
我有一个问题,我使用 C# 和 Window Forms 在 visual studio 上创建了一个应用程序,但每次运行时,如果应用程序关闭(由人手动关闭或当它到达最后)它继续 运行 在计算机的进程上,所以如果我打开和关闭应用程序 3 次,将激活 3 个同名进程。我怎样才能防止这种情况发生?到目前为止,我关闭它的唯一方法是 Window 任务管理器并手动关闭它,这很痛苦...
有什么想法吗?
如果您想终止所有进程并退出应用程序,那么您首先需要终止后台线程
Application.ExitThread();
然后退出应用程序
Environment.Exit();
嗯,基于这个问题你可以在你的应用程序启动时检查你的应用程序是否运行。这样你只有在不是 运行:
时才启动进程
我要检查例如记事本:
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
}
您可以使用 Saif 的答案强制中止后台线程,但我建议您更好地管理线程。如果您的线程 运行 持续了很长一段时间,您应该有一个标志(一个布尔值,可以从代码中的任何地方访问)告诉线程它们应该停止 运行ning。这是比
更安全的方法
Application.ExitThread();
因为它允许您刷新和关闭流、断开套接字连接或整理您在线程中所做的任何事情。
我有一个问题,我使用 C# 和 Window Forms 在 visual studio 上创建了一个应用程序,但每次运行时,如果应用程序关闭(由人手动关闭或当它到达最后)它继续 运行 在计算机的进程上,所以如果我打开和关闭应用程序 3 次,将激活 3 个同名进程。我怎样才能防止这种情况发生?到目前为止,我关闭它的唯一方法是 Window 任务管理器并手动关闭它,这很痛苦...
有什么想法吗?
如果您想终止所有进程并退出应用程序,那么您首先需要终止后台线程
Application.ExitThread();
然后退出应用程序
Environment.Exit();
嗯,基于这个问题你可以在你的应用程序启动时检查你的应用程序是否运行。这样你只有在不是 运行:
时才启动进程我要检查例如记事本:
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
}
您可以使用 Saif 的答案强制中止后台线程,但我建议您更好地管理线程。如果您的线程 运行 持续了很长一段时间,您应该有一个标志(一个布尔值,可以从代码中的任何地方访问)告诉线程它们应该停止 运行ning。这是比
更安全的方法Application.ExitThread();
因为它允许您刷新和关闭流、断开套接字连接或整理您在线程中所做的任何事情。