C# 尝试对我的程序执行重置,但未成功

C# 尝试对我的程序执行重置,但未成功,c#,winforms,C#,Winforms,我尝试如下方式重置我的C#程序: System.Windows.Forms.Application.Restart(); 另外,我在程序类中设置了此选项,以确保只有一个实例 [STAThread] static void Main() { if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1) {

我尝试如下方式重置我的C#程序:

System.Windows.Forms.Application.Restart();
另外,我在
程序类中设置了此选项,以确保只有一个实例

 [STAThread]
        static void Main()
        {
            if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)
            {
                MessageBox.Show("the program is runing", "attention", 0, MessageBoxIcon.Hand);
                return;
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Main());

             }
}
当我运行程序并执行重置时

System.Windows.Forms.Application.Restart(); 
我收到消息说程序正在运行,或者什么也没发生


谢谢

不幸的是,你是,但也没有答案。-谈到其他线程可能会使其保持活动状态,您是否正在增加额外的线程?启动一个单独的进程,该进程将在一段时间后重新启动您的应用程序,以便您可以终止原始应用程序?或者修改SingleInstance过程以创建一个类似于此处的互斥体,您可以在重新启动应用程序时释放该互斥体?显然,您需要一个额外的全局变量来表示您将要调用Restart()。因此,您可以修复Main()方法,在短时间内,您将有两个应用程序实例正在运行。调用Restart()并将很快结束的。以及由Restart()调用启动的。