私はアプリを持っていますが、いくつかの方法があります。基本的にボタンクリックイベントとタイマーイベントです。ボタンをクリックするか、数秒経過すると、タイマーやボタンがメッセージを送信し(私はTCPメッセージだと思う)、すぐに別のアプリからの応答を待つ。メッセージと回答にはStreamWriter.Write()
とStreamReader.Read()
を使用します。 (彼らはTCP文字列メッセージを作成して受け取ります。)C#で予期しないメッセージをキャッチする方法、メッセージを送信しているときにメッセージの回答を受け入れる場合もありますか?
しかし、予期せぬメッセージもあり、いつでも私のアプリに届くはずです。私はそれらを受け取る方法を知らない。
アイデア1:StreamReader.Read()
ごとに、予期しないメッセージが表示されることがあります。しかし、それは悪い考えです。送信と読み取りのメッセージは非常に頻繁に発生しますが、すべての場所でコードを変更するのはちょっと変わった解決策です。
アイデア2:スレッドを使用します。それはStreamReader.Read()
ですべての着信メッセージを受け入れます。しかし、私の主なスレッドでは、私はStreamReader.Read()
メソッドを削除し、単に他のスレッドからの答えを待つ必要があります。これは(私は答えが得られない){}の間に起こりますが、これはまた悪い解決策であるようです。
アイデア3:イベントハンドラを使用していますか?私はこれを使ったことが一度もなかったので、このタスクにイベントを使用する方法について少し混乱しています。
他のアイデアはありますか?
メッセージはどこから届いていますか?同じアプリですか?他のアプリですか?メッセージ・フレームワークの使用についてThougth? –
その他のアプリそしてメッセージはTCPメッセージです、と私は思います。 (文字列) – greyline
TCPはメッセージを送信しません。それは両方向のバイトの無限のストリームを行います。メッセージが必要な場合は、TCP上でそれらを実装するか、メッセージを行う上位プロトコルを使用するのはあなた次第です。現時点では、存在しないもの(TCPメッセージ)について話しているので、あなたが探しているものは非常に不明です。 –