我正在開發用於C#和.NET Framework 2.0的Server 2003GDI +窗口阻止關機
只要程序運行,我就無法關閉我的機器。什麼也沒有發生,但是當alt + tabbing我可以看到一個叫做「GDI + Window」的窗口。只要我關閉程序,我就可以正常關閉電腦。
但是,在我的其他電腦上(Windows XP專業版,Windows 8,Windows 8.1)並沒有發生。
該程序從數據庫中提取數據並將它們發送到互聯網,所以我有一個線程在後臺運行。這可能是一個問題嗎?
在主類的代碼如下:
public partial class Form1 : Form
{
bool run = true;
//AutoStart autoS = new AutoStart();
int interval;
//LogFileBuilder lfboom = new LogFileBuilder(true);*/
public Form1()
{
InitializeComponent();
/*OpenOnce();
//autoS.EintragHinzufügen();
WriteMe();
LogFileBuilder lfb = new LogFileBuilder();
lfb.writeLine("Programm gestartet");
new Thread(Durchführung).Start();*/
}
}
當然也有形式的其他方法和事件處理程序,但它們是不相關的,因爲它們不叫,重現這個問題時, 。正如你所看到的,除了InitializeComponents()之外,我已經註釋了我的整個代碼,但仍然會出現問題。
的步驟再現:
1.打開程序
2.關閉服務器
3.什麼也沒有發生,除了新的「GDI +窗口」中的Alt + Tab列表中,這是不打開的
http://support.microsoft.com/kb/943453 –
我建議重新考慮是否需要顯示概括起來講,下面的代碼用於在後臺運行的程序的UI,並從數據庫中提取信息並將其發送到Internet。如果您不創建任何類型的用戶界面,則不會初始化GDI +,並且不會創建此窗口。 –
我想到了用戶界面,但這很重要,因爲我必須經常更改一些數據,這樣更加方便,我可以顯示結構化的信息。我從你的鏈接插入了示例代碼,但是我得到了一個TypeLoadException。其他信息:由於方法「SetForegroundWindow」沒有實現(無RVA),因此無法加載程序集「MyProject,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null」中的類型「MyProject.Form1」 。 (由我自由翻譯) – HigHendHd