2014-09-30 83 views
1

我在Visual Studio中創建了一個空項目,並添加了所需的程序集引用,一個具有靜態Main函數和WPF窗口的類。阻止應用程序關閉

然後,我創建一個窗口的實例並顯示它,但執行後一切都關閉,因爲沒有任何東西保持線程打開/運行。

添加一個while(true)循環會使其保持打開狀態,但會凍結主線程。

while(true)循環添加到新線程可使該線程保持打開狀態,但主線程仍然會關閉其他所有內容來完成執行。

我該如何讓應用程序保持打開狀態?

回答

5

最簡單的答案是隻用股票WPF應用程序項目,而不是滾動你自己的,因爲它的生成代碼爲你處理。

較長的答案是明確利用Application.Run。你可以看到這個框架在這個答案中做了什麼:https://stackoverflow.com/a/2694710/1783619

這使得長時間運行的線程,以便你的應用程序不會像以前那樣提前終止。

+0

我在窗體應用程序中看到了Application.Run,​​但函數只接受Windows窗體,我想用WPF窗口。 – Anomaly 2014-09-30 18:20:59

+0

@Anomly WPF版本將使用WPF Application對象(請參閱標準的App.xaml.cs)。它是相同的函數調用,如鏈接的SO帖子所示。 – BradleyDotNET 2014-09-30 18:22:58

+0

哦,我現在只看到了,謝謝,問題解決了。 – Anomaly 2014-09-30 18:28:07

1

創建一個新的WPF應用程序/項目:

在Visual Studio中做的:文件 - >新建 - >項目 - >的Visual C# - > WPF應用程序

+0

我想從一個空的項目創建窗口的應用程序,我知道我可以通過選擇適當的項目來創建WPF或窗體應用程序。 – Anomaly 2014-09-30 18:22:33

+0

...或至少這樣做,所以你可以看到什麼是自動生成的代碼 – 2014-09-30 18:22:34

+0

與WPF我沒有看到任何自動生成的代碼,只有與WinForms,但它使用Application.Run(新窗體()) '只接受表格 – Anomaly 2014-09-30 18:25:28

相關問題