2010-03-29 65 views
0

我想知道在構造函數完成執行我的代碼後會發生什麼,因爲構造函數需要10秒才能在冷啓動時運行,但根據探查器,我的代碼在2秒內完成執行。在WPF應用程序中,執行主窗口構造函數中的代碼後會發生什麼?

在構造函數的最後一行之後,我還在調試器中遍歷代碼,我坐在那裏等待窗口出現前7-8秒。爲什麼是這樣?

如果窗口正在加載內容或其他東西,爲什麼它不顯示在屏幕上,在構造函數完成它的工作後是否完成加載?什麼是阻止? (或者我怎麼弄出來的)

+1

需要有關您的應用程序的更多信息。 – 2010-03-29 20:36:03

+0

也許它正在加載一些庫。 Visual Studio的「輸出」窗口在「空閒」時間內顯示什麼有趣的內容? – Heinzi 2010-03-29 21:11:37

回答

1

一旦你的構造函數運行了,它就構建了窗口所需的所有UI元素。但是它仍然需要做幾件事情:

  • 運行措施和佈局傳球把UI元素在正確的地方
  • 解決任何數據綁定值
  • 負荷,解碼和調整圖像的窗口
  • 做實際的渲染

如果你的問題是在渲染線程(包括圖像加載),你會看到一個不響應的窗口「殼」,而不是無視窗,所以我不認爲問題是t這裏。有些東西需要很長時間才能獲取數據綁定值,或者只是有一個複雜的佈局,這對我來說可能會導致這種情況。

另一件要檢查的事情是查看你的CPU是否掛鉤,或者如果你在7-8秒內擊中磁盤。可能會給你一些線索尋找。

相關問題