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

我已经编写了一个C#Windows窗体应用程序,而不是一个服务(只有在用户login并具有graphics用户界面时才使用),后台线程以无限循环运行。

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

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

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

提前致谢。

编辑:感谢您的伟大的意见! 如果它有一个CANCEL事件处理程序,是否可以在表单closures事件中使用这个想法?

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 } } 

你称该线程为“后台线程”,但它有IsBackground = true;
系统只会停止一个线程。

我觉得Capture控制台出口C#应该也可以在你的场景中使用。

除此之外,也许这足以建立你的线程作为后台线程 ?

看看Microsoft.Win32.SystemEvents.SessionEnding事件。