C♯相談室 Part7
■ このスレッドは過去ログ倉庫に格納されています
0586デフォルトの名無しさん
NGNGプログラムを作っているのですが、1つ問題が出てきました。
システムの構成としては、チャットクライアントとチャット
サーバがあって、複数のチャットクライアントがチャットサーバ
に接続して通信を行います。
チャットクライアントでは、GUIの入力受付と、通信は別スレッドで
行っているのですが、通信スレッド側で、次のよに、読み込み状態に
してしまうと、そこで処理がブロッキングしてしまうのです。
size = networkStream.Read(data, 0, 1);
この場合、GUIで入力した内容を通信スレッドに渡しても、Readで
ブロッキング状態になっているため、サーバ側からなんらかの値が
送られてこない限り、GUIで入力した情報を送信する処理に移行して
くれないのです。
こういう場合は、どのようにプログラムを組めばいいのでしょうか?
1つのnetworkStreamを2つの通信スレッドで、送信受信に分けて
動かせばなんとかなりそうなのですが、できれば通信スレッドは1つ
ですっきりさせたいのです。
何かいい方法はあるでしょうか?
■ このスレッドは過去ログ倉庫に格納されています