1

チャットのようにテキストを更新するためにサーバとの非同期ソケット接続を実装し、このテキストをアプリの画面に表示する必要があります。WP7 - ソケットアーキテクチャ - どのようにソケット接続を管理しましたか?スレッド?

私はこの種のソケットを実装する方法についていくつかの例を見てきましたが、それは難しい作業ではありません...しかし、私はプログラムを改善したいと考えています。

私はバックグラウンドで接続を管理する必要があるかもしれないと思っています。このタスクをどのように実装できるかについてはわかりません。いいですか?あるスレッドでUIを管理し、他のスレッドで接続を管理しますか?

誰かがこの種の仕事について私を指向させることができたら?

ありがとうございます。

答えて

2

古典的なソケットI/Oはブロックされているので、別のスレッドでI/Oコードを移動する必要があります。そうしないと、UIスレッドはブロックされ、ユーザー入力を受け取ることができなくなります。

もう一度スレッドが必要です。現時点で問題となっているのは、UIスレッドだけがそれを行うことができるため、ソケットからの入力がある場合、このスレッドはUIを更新できないということです。このためには、UIスレッドに更新を転送するためにDispatcher.BeginInvokeコールが必要です。

+0

この情報に感謝しますが、どのような種類のスレッドをこのタスクに使用できますか?私は定期的なタスクとリソースの集中的なタスクについて何か聞いている....私はこの種の操作が私の目標に達するのが理にかなっていないと思う...他の手で私は約3つの方法differentesタスクを実装するバックグラウンドで:System.Threading.Thread、System.ComponentModel.BackgroundWorkerおよびSystem.Threading.ThreadPool.QueueUserWorkItem()...バックグラウンドでソケットを管理するための最良の方法についての参考情報を教えてください。 –

+0

@Juan Pedroありがとうございます。ソケットから無期限に読み込むために、私は 'System.Threading.Thread'を使用します。スレッドプールは長時間実行されるI/Oのためのものではなく、 'BackgroundWorker'は一般的にデータベース操作やダウンロードのような時間のかかる操作を行うのに役立ち、進捗状況を報告することができます。 – Tudor

+0

あなたの答えをありがとう...私は解決としてこのポストを設定する前に一日お待ちしています。私は他のユーザーの意見を聞くのを待っています。とにかくありがとうございました。 –

関連する問題