質問者
通信処理について

質問
-
すべての返信
-
.NET 4.5を使用するのであれば、非同期機能が使えます。
- Async および Await を使用した非同期プログラミング (C# および Visual Basic) (VB2012向け、機械翻訳です)
- Async および Await を使用した非同期プログラミング (C# および Visual Basic) (VB2013向け、左ツリーが壊れています)
- Asynchronous Programming with Async and Await (Visual Basic) (VB2015向け、まだ翻訳されていません)
この非同期機能を使うと、スレッドは特に意識する必要はなくなります。通信処理中は他のGUI操作を行うことができ、通信完了後にソースコードの次の行に戻ってきます。
ですので、スレッドやBackgroundWorkerは使用せず、非同期機能をお勧めします。
- 回答の候補に設定 星 睦美 2016年11月25日 1:38
-
GUI表示中、常に通信を行って、情報を更新するようなアプリでしょうか。
通信した結果を使用するのが1つの画面で良いのであれば、async-awitや、BackgroundWorkerで良いと思います。
async-awaitとBackgroundWorkerのどちらかは、メンバー内でメンテナンスしやすい方を採用しては如何でしょうか。ただ、複数の画面で通信したデータを使用するのであれば、MVCやMVVMでのModel層で通信することになります。
この場合は、Threadをラップして通信処理をまとめたクラスを作成するのが良いと思います。
.NETの非同期処理について違いを知りたい場合は、下記の書籍が参考になります。
C#によるマルチコアのための非同期/並列処理プログラミング- 編集済み Gothelauth 2016年10月15日 1:34 末尾の改行を削除
- 回答の候補に設定 星 睦美 2016年11月25日 1:38