gpt4 book ai didi

c# - 从 ApplicationContext 退出应用程序

转载 作者:太空狗 更新时间:2023-10-29 22:55:36 25 4
gpt4 key购买 nike

我有一个自定义的 ApplicationContext,如果满足特定条件,我会尝试终止它。我正在使用 Mutex 来确保单个实例。

我试过 base.OnMainFormClosed(null, null);Application.Exit()ExitThread。一切都停止处理,但进程本身仍在运行。

完成 Main() 方法:

static void Main()
{
bool firstInstance;
using (Mutex mutex = new Mutex(true,
@"Global\MyApplication",
out firstInstance))
{
if (!firstInstance)
{
MessageBox.Show("Another instance is already running.");
return;
}

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new CustomContext());
}
}

什么是正确的技巧?

最佳答案

   Application.Run(new CustomContext());

没关系,但您没有存储对您创建的 CustomContext 对象的引用。因此无法调用其 ExitThread 方法。像这样调整它:

class Program {
private static CustomContext appContext;

[STAThread]
public static void Main() {
// Init code
//...
appContext = new CustomContext();
Application.Run(appContext);
}
public static void Quit() {
appContext.ExitThread();
}
}

现在您可以简单地调用 Program.Quit() 来停止消息循环。

this thread 中查看我的答案以更好的方式实现单实例应用程序。 WindowsFormsApplicationBase 类还提供了 ShutdownStyle 属性,可能代替 ApplicationContext 对您有用。

关于c# - 从 ApplicationContext 退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com