我有一個應用程序,有什麼幾個方法。他們基本上是按鈕點擊事件和計時器事件。當我點擊一個按鈕或幾秒鐘後,計時器或按鈕發送一條消息(我認爲TCP消息),並立即等待來自另一個應用程序的答案。我使用StreamWriter.Write()
和StreamReader.Read()
作爲消息和答案。 (他們創建並接受TCP字符串消息,我認爲)。如何在c#中捕獲意外消息,同時發送消息,並且我也想接受消息的答案?
但也有意想不到的消息,什麼可以隨時到達我的應用程序。我不知道如何接收它們。
想法1:在每StreamReader.Read()
之後,爲發生意外消息的情況做好準備。但這似乎是一個糟糕的主意。雖然發送和閱讀消息經常發生,但修改每個地方的代碼似乎有點奇怪的解決方案。
想法2:使用線程。它會接受每個傳入消息StreamReader.Read()
。但在我的主線程中,我需要刪除StreamReader.Read()
方法並簡單地等待來自其他線程的答案。這會發生在while(我沒有得到答案){},這似乎也是一個不好的解決方案。
想法3:使用事件處理程序?我從來沒有用過這個,所以我對如何使用這個任務的事件感到困惑。
還有其他想法嗎?
消息來自哪裏?同一個應用其他應用?關於使用消息框架的使用? –
其他應用。我想,這些消息是TCP消息。 (字符串) – greyline
TCP不會執行消息。它在兩個方向上都會有無窮無盡的字節流。如果你想要消息,那麼你需要在TCP上實現這些消息,或者使用一個可以執行消息的更高級協議。由於目前你正在談論的東西不存在(TCP消息),所以你不清楚你在找什麼。 –