我有一個控制檯應用程序A和控制檯應用程序B. 是否可以從A啓動多個B實例。重要的是控制檯應用程序B的每個實例都要在其自己的應用程序域中運行。 如果可能的話,該怎麼做?如何在不同的應用程序域中啓動控制檯應用程序的多個實例?
0
A
回答
2
當然是可能的。採取的步驟如下:
- 應用程序A創建一個新的應用程序域。
- 在新的應用程序域中執行控制檯應用程序B.
- 控制檯應用程序B完成執行後卸載新的應用程序域。
一個非常簡單的例子是:
var appDomain = AppDomain.CreateDomain("a name");
appDomain.ExecuteAssembly("ConsoleApplicationB.exe"); //Update with the path to consolse application B.
AppDomain.Unload(appDomain);
注意,這是我可以做最簡單的例子。選擇更符合您需求的AppDomain.CreateDomain過載。
請注意,AppDomain.ExecuteAssembly正在阻止。運行示例時您會注意到這一點。控制檯應用程序A將阻塞,直到應用程序B退出。你將不得不這樣做異步。
2
控制檯可以只與關聯一個進程。我沒有看到其他的方式,System.Diagnostics.Process.Start("B")
見http://msdn.microsoft.com/en-us/library/windows/desktop/ms681944(v=vs.85).aspx
+0
你從哪裏讀到的?進程可以通過使用AllocConsole或創建子進程來共享相同的控制檯。這與應用程序域相同。新的應用程序域可以執行將與主應用程序域共享控制檯的控制檯應用程序。 –
1
@ I4V
我覺得你這混了。 A 過程可以僅與一個控制檯。
這意味着一個進程可以(在|出|錯誤)與一個控制檯只有溝通,ligher而言,一個進程可以不自己多個控制檯窗口。
這就是說,多於一個過程更可以與一個控制檯通信。理想的同步過程。
當然也有一些解決方法,使一個進程有多個控制檯窗口(WinTTY)
相關問題
- 1. 如何在控制檯應用程序中啓動dbmonitor的mysqlmonitor實例
- 2. 在Visual Studio中啓動控制檯應用程序的多個實例(使用不同的參數)?
- 3. 從不同的應用程序啓動時,C#控制檯應用程序不顯示控制檯輸出
- 4. 從控制檯應用程序啓動控制檯應用程序
- 5. 如何在啓動時啓動控制檯應用程序(!)? C#
- 6. 如何使用launchd啓動應用程序的多個實例?
- 7. .Net無法啓動控制檯的控制檯應用程序
- 8. 使用不同代理的多個控制檯應用程序
- 9. 爲多個實例構建C#控制檯應用程序
- 10. Vaadin爲單個應用程序啓動多個應用程序實例
- 11. 在後臺啓動我的控制檯應用程序
- 12. 在C中逐行啓動一個控制檯應用程序#
- 13. 如何確定如何啓動控制檯應用程序?
- 14. 如何在控制檯應用程序
- 15. 如何在控制檯應用程序
- 16. 如何啓用滾動Python控制檯應用程序
- 17. 啓動過程(從另一個控制檯應用程序)
- 18. SignalR控制檯應用程序示例
- 19. 在多個應用程序池中啓動了相同的應用程序
- 20. XCode - 在運行多個應用程序實例時查看應用程序退出後的控制檯輸出
- 21. 如何從控制檯應用程序實例化SPWeb對象?
- 22. .NET控制檯應用程序中的多個滾動「窗口」
- 23. 如何在一個測試中啓動應用程序的多個實例
- 24. 如何從應用程序內啓動新的應用程序實例?
- 25. 在控制檯應用程序中實例化WinForm
- 26. 應用程序預計將有一個根視圖控制器在應用程序啓動disaplying在控制檯
- 27. 用不同的參數啓動程序的多個實例
- 28. 多線程Java應用程序中的java.net.HttpURLConnection的不同實例
- 29. 從控制檯應用程序啓動ASP.NET Core 1應用程序
- 30. 如何從控制檯應用程序啓動kdiff?
的Process.Start(appB的) – lcryder
購買我需要appB的每個的多個實例在其自己的應用程序域啓動。 – Dejo
-1:每個新進程都有自己的AppDomain,所以Process.Start應該沒問題,但看起來你正在尋找其他東西。不幸的是,目前還不清楚你到底在找什麼,以及爲什麼單獨的流程不適合你 - 請編輯你的問題,以明確separte流程是否正常,或者你需要單個流程與多個AppDomain。 –