2017-02-10 44 views
-1

我有一个问题,我使用C#和窗体窗体在Visual Studio上创建了应用程序,但每次运行时,如果应用程序关闭(无论是由人员手动还是到达结尾)它会继续运行在计算机的进程中,所以如果我打开和关闭应用程序3次,将激活3个同名进程。我怎样才能防止这种情况发生?到目前为止,我关闭它的唯一方法是去窗口任务管理器并手动关闭它,这是一个痛苦...应用程序退出后在计算机上运行的进程

任何想法?

+0

需要看你的代码来告诉你为什么。 – itsme86

回答

1

,如果你想先杀死从应用程序的所有进程,然后退出,那么你需要杀死线程在后台从应用

Application.ExitThread(); 

,然后退出

Environment.Exit(); 
+0

谢谢,这工作完全正常:) – dreamheart

+0

我很高兴知道..请标记为答案.. – Saif

-1

那么,根据这个问题你可以检查您的应用程序是否在应用程序启动时运行。这样,你只有当它没有运行启动过程:

I'm要检查例如记事本:

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 
} 
+0

问题不在于进程的多个实例正在运行,但该进程不会退出时,它应该。除了在后台运行的线程之外,我想不出任何其他原因。 – Mark

0

您可以使用赛义夫的答案,这迫使后台线程中止,但我建议你更好地管理你的线程。如果你的线程运行了很长一段时间,你应该有一个标志(一个布尔值,可以从你的代码中的任何地方访问)告诉线程它们应该停止运行。这比

Application.ExitThread(); 

一个更安全的方法,因为它可以让你刷新并关闭流,断开插座连接或整理无论你在你的线程做。

相关问题