Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Windows应用程序阻止Windows关闭/注销_C#_Windows_Handler_Logoff - Fatal编程技术网

C#Windows应用程序阻止Windows关闭/注销

C#Windows应用程序阻止Windows关闭/注销,c#,windows,handler,logoff,C#,Windows,Handler,Logoff,我编写了一个C#Windows窗体应用程序,而不是一个后台线程在无限循环中运行的服务(它仅在用户登录并具有图形用户界面时使用) 但是,当我尝试关闭Windows(7)时,它告诉我程序正在阻止它关闭或注销,并询问我是否要强制关闭 现在,我的程序是否有可能意识到(获取处理程序)Windows试图退出或注销 所以,我需要的是让应用程序在Windows尝试退出时实现 提前谢谢 编辑:谢谢你的建议!如果表单关闭事件有一个CANCEL事件处理程序,是否可以以任何方式将idea与表单关闭事件一起使用?我认为在

我编写了一个C#Windows窗体应用程序,而不是一个后台线程在无限循环中运行的服务(它仅在用户登录并具有图形用户界面时使用)

但是,当我尝试关闭Windows(7)时,它告诉我程序正在阻止它关闭或注销,并询问我是否要强制关闭

现在,我的程序是否有可能意识到(获取处理程序)Windows试图退出或注销

所以,我需要的是让应用程序在Windows尝试退出时实现

提前谢谢

编辑:谢谢你的建议!如果表单关闭事件有一个CANCEL事件处理程序,是否可以以任何方式将idea与表单关闭事件一起使用?

我认为在您的场景中也应该可用

除此之外,将您的线程设置为?

看看事件。

您将该线程称为“后台线程”,但它是否具有
IsBackground=true

系统将仅停止执行此操作的线程。

单击右上角的“关闭”按钮是否可以退出应用程序?如果是这样,应用程序不应该阻止关机。否则,您需要先处理该场景。谢谢。这真的帮助了我。我删除了Cancel处理程序并使用了这个处理程序,这样,只有当Windows关闭它退出的应用程序时才使用。
public Form1()
{
    InitializeComponent();

    this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
}

void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    // Or any of the other reasons suitable for what you want to accomplish
    if (e.CloseReason == CloseReason.WindowsShutDown)
    {
        //Stop your infinite loop
    }
}