1
代碼調試的一個星期後,我發現我的Windows窗體GUI是行爲異常的問題,因爲我跑的形式:在Application.Run之外創建Windows窗體會產生奇怪的行爲。爲什麼?
Form1 myGui = new Form1();
Application.Run(myGui);
改變代碼:
Application.Run(new Form1());
顯然做了伎倆。
我遇到的問題是,由於某種原因,如果我以第一種方式創建窗體,並試圖用Invoke/BeginInvoke模式編組調用,則調用從未解決,使其他線程掛在Invoke的情況,或者根本不用BeginInvoke調用函數。
任何人都可以解釋爲什麼會發生這種情況?
此外,我在Mono和Unity3D上運行應用程序。
謝謝大家
這是一個範圍界定問題嗎?兩種方法之間沒有區別,除了Form1的生命週期。 – Neil 2013-05-13 10:48:28
這兩行代碼完全相同。這聽起來像是Mono的問題。 – 2013-05-13 10:50:53
感謝您的回覆。 至於範圍,變量「myGui」是一個類變量,它在調用類構造函數時得到實例化,但在調用方法「SpawnGui」時運行。我不認爲這可能會導致範圍問題! 由於單聲道,是的,這可能是問題,但這種行爲是如此奇怪,我認爲還有一些其他問題。謝謝 – user2335498 2013-05-14 06:56:53