2013-04-30 52 views
0

我在C#中有一個包含兩個項目的解決方案。一個是Windows窗體應用程序,另一個是控制檯應用程序。這兩個項目都設置爲在程序運行時啓動。我正在使用控制檯應用程序來執行用戶不需要知道的一些任務,因此我已將輸出類型設置爲Windows窗體應用程序。 現在,控制檯應用程序已完成其關閉的任務,但我希望能夠通過按下按鈕通過Windows窗體應用程序再次執行它。 我該怎麼做?
另外,當我在我的Windows窗體應用程序上使用Application.Exit()時,它是關閉這兩個項目還是隻關閉Windows窗體?如何在一個解決方案中的項目之間進行通信?

回答

1

現在後,控制檯應用程序已完成其任務,它會關閉,但我 希望能夠通過我的Windows再次執行按一個按鈕形成 應用。我該怎麼做呢 ?

只要使用Process.Start就可以傳遞一個路徑到您的控制檯可執行文件。

另外,當我在我的Windows窗體應用程序 上使用Application.Exit()時,是否會關閉這兩個項目或只是Windows Form?

應用程序是程序集的執行上下文,換句話說,它指的是代碼被執行的EXE。所以在你的情況下,它只會關閉你的WindowsForms應用程序。

+0

如果控制檯應用程序在後臺運行,該怎麼辦?有什麼辦法可以告訴它重新開始? – 2013-04-30 09:40:57

+0

@WaqasAli:Process.Start將啓動一個新的*應用程序應用程序實例,因此您將在內存中擁有兩個Console EXE實例。希望這可以幫助。 – Tigran 2013-04-30 09:49:19

+0

噢好吧, 謝謝 – 2013-04-30 09:50:30

0

只要您在控制檯應用程序中需要的方法是公開的,您應該可以直接從其他應用程序調用它們。只需在調用項目中添加對其的引用即可。實際上,如果你想要這樣的普通東西,你可以考慮將公共邏輯放在一個單獨的項目中,構建爲.dll,並讓控制檯和winforms項目在需要時使用它。

+0

dll的想法來找我,我已經建立了一個,但我想要在程序啓動(它自動執行)和用戶關閉WinForm應用程序時執行控制檯應用程序。 – 2013-04-30 09:40:08

相關問題