【问题标题】:closing windows application on windows request (like shutdown)根据 Windows 请求关闭 Windows 应用程序(如关机)
【发布时间】:2012-08-28 19:06:23
【问题描述】:

我编写了一个 Windows 应用程序项目,我在它的形式关闭事件中执行一些其他操作,现在我寻找从外部调用的东西,让应用程序关闭,因为应用程序不会关闭,最后在旧操作系统中,它导致windows无法关闭

这是我的表单事件:

在这里,我在其他部分关闭了我的显示器(我只有在表单加载时有显示器,我不关心那部分,它会在几秒钟内完成)

private void UserInterface_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (Monitor.TryEnter(_objStop))
            {
                Monitor.Exit(_objStop);
            }
            else
            {
                Monitor.Exit(_objStop);
            }
        }

接下来是

private void UserInterface_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!_flagExit)
            {
                e.Cancel = true;
                HideForm();
            }
        }

现在我正在寻找来自窗口的事件,所以我在我的应用程序拒绝关闭之前将 _flagExist 切换为 true(尝试隐藏在通知栏中)

【问题讨论】:

    标签: c# winforms .net-2.0 shutdown terminate


    【解决方案1】:

    【讨论】:

    • 有多个选项,一个是关机,另一个是任务管理器……我还应该选择什么?作为 Windows 事件?
    • 这取决于你到底想要什么:) 你应该重构你的 UserInterface_FormClosed - 你的 if 没用......
    • 我不确定它是否什么都不做,就像在我的服务中我放了一个锁,但是启动时的服务绕过了我的锁:|
    • 我有通知图标,我想在用户关闭表单时手动调用 hide() 方法,否则什么都不做
    • 我的意思是你可以调用 Monitor.TryEnter 而不检查它的结果。然后调用你的 Monitor.Exit。至于关闭有 UserClosing 关闭原因。
    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    相关资源
    最近更新 更多