gpt4 book ai didi

winforms - 如何在表单关闭时终止 Windows Mobile 6.1 表单应用程序进程?

转载 作者:行者123 更新时间:2023-12-02 19:26:45 25 4
gpt4 key购买 nike

在我编写的 .Net CF 3.5 WinForms 程序的 Program.cs 文件中,我通过实例化 Form1 的新实例来启动该应用程序。

Application.Run(new Form1());

当我想要关闭/退出应用程序时,我会重写 Form1 FormClosed 事件,以便确保退出应用程序。

// In Form1 code-behind
private void OnFormClosed(object sender, EventArgs e)
{
Application.Exit(); // Doesn't kill process
}

当此代码运行时,我希望应用程序从屏幕上消失(关闭),并且我希望它正在运行的进程消失。该应用程序关闭(消失),但不幸的是,该进程(我们将其称为 app.exe)仍在无限期运行。当我再次启动应用程序并关闭它时,它会启动另一个 app.exe 进程,等等。因此该进程永远不会消失,并且会创建更多进程来消耗内存。

当我关闭/退出应用程序时,如何确保该进程被终止?谢谢。

最佳答案

首先,您不必重写 OnFormClosed 即可获得您想要的行为。只需关闭传递给 Application.Run 的表单就会导致应用程序的消息泵退出,并且应该导致进程结束。对于 Windows Mobile,您应该将表单的 ShowMinimize 属性设置为 false 以防止其最小化 - 右上角应该有一个 (OK),而不是 (X)。

如果此表单关闭时进程未退出,则 99.99% 的情况是罪魁祸首是您有一个仍在运行的工作线程,导致进程无法关闭。确保所有线程的 IsBackground 设置为 true(对于 CF 3.5),并且作为预防措施,所有线程还应该具有某种形式的退出通知或标志。不要依赖进程终止来为您拆除它们。

关于winforms - 如何在表单关闭时终止 Windows Mobile 6.1 表单应用程序进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3770222/

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