我該怎麼做才能讓我有一個帶有後臺進程的「監聽」捕捉的主程序(例如,通過像sendDebugInfo(Exception e)這樣的函數),然後取消隱藏第二個控制檯並顯示消息,但如果用戶關閉調試窗口,則不會退出程序。2在不同線程中運行的控制檯應用程序
如果上述不夠清楚這裏是一個簡單版本:
控制檯應用程序1個功能HELLOWORD()用於 控制檯應用程序1周功能的helloWorld()發送一個字符串到第二控制檯窗口(但內同一個項目) 第二個控制檯顯示「hello world」。
我該怎麼做才能讓我有一個帶有後臺進程的「監聽」捕捉的主程序(例如,通過像sendDebugInfo(Exception e)這樣的函數),然後取消隱藏第二個控制檯並顯示消息,但如果用戶關閉調試窗口,則不會退出程序。2在不同線程中運行的控制檯應用程序
如果上述不夠清楚這裏是一個簡單版本:
控制檯應用程序1個功能HELLOWORD()用於 控制檯應用程序1周功能的helloWorld()發送一個字符串到第二控制檯窗口(但內同一個項目) 第二個控制檯顯示「hello world」。
你確實在問關於進程間通信(IPC)。
有很多方法可以實現IPC。我建議你看看命名管道。它們易於使用且相當可靠。
http://msdn.microsoft.com/en-us/library/system.io.pipes.aspx
命名管道背後的基本想法是,你有一個命名的資源,你可以在一個進程寫消息,並從其他進程讀取消息。該消息可以是任何你想要的。這些過程只需使用預先約定的名稱即可連接到管道。
只是澄清,說你想讓兩個控制檯應用程序運行在不同的線程有點誤導。控制檯應用程序通常完全在不同進程上運行,並且由於線程不在進程之間共享,因此在不同線程中運行的兩個控制檯應用程序是常態。但是,當你明確地說出這個問題時,聽起來好像你正試圖在相同的進程上運行它們,但是我甚至不確定的不同線程是可能的。
這就是說,埃裏克J.是正確的,你真的好像在問IPC可以以多種方式執行。命名管道是一種方式,TCP回送是另一種方式。如果您希望這些應用程序在某些時候在不同的機器上運行,您將希望使用TCP。否則命名管道更容易處理。
我建議讀一下IPC,找出哪種方法適合您的需求,並嘗試使其工作。當你遇到像「我的信息沒有通過」之類的具體問題時,你應該回來尋找類似的問題或者創建一個新的問題。
過程之間可能無法正常運行異常。 – HABO
通過字符串發送異常。 –
你有兩個控制檯窗口(不知道是否有可能...)或2+處理每個控制檯窗口的過程? –