10/06/14 01:01:27
マルチスレッドで教えてください。
ソケットプログラミングで、受信スレッドがキューにデータを溜めて、
メインスレッドは順次データを読み出して処理するというプログラムを書いています。
メインスレッドはキューにデータが無ければ受信するまで待機したいのですが、
一般的にどう実装するものでしょうか?
とりあえず作った受信スレッドは、
Monitor.Enter(obj);
受信ループ
キューに格納
Monitor.Exit(obj);
Monitor.Enter(obj);
ループEnd
Monitor.Exit(obj);
受信の都度Exitしてメインスレッドに所有権を明け渡しています。
動作には問題なさそう?なんですけど、なんかスマートじゃないというか。。。