こんにちは。
以下の事をやりたいのでアドバイスを頂ければと思います。
例えば・・・
A画面からボタン1でA1画面をモードレスで表示。
更にA画面からボタン2でA2画面をモードレスで表示。
↓
A1画面でボタンXを押下して、サーバにある電文を送信。
サーバより応答が返ってくるまで、ボタンXはマスク。
↓
ほとんど同時に
A2画面でボタンYを押下して、サーバにある電文を送信。
サーバより応答が返ってくるまで、ボタンYはマスク。
この場合、スレッドを使用した方がよろしいのでしょうか?
#以前、これらの処理に関して、ソケットまわりの質問を
させて頂いた事はあります。
ご教授願います。
> この場合、スレッドを使用した方がよろしいのでしょうか?
他に思いつかないなら、やってみては?
bestかどうかはcase-by-caseだろうけど、betterな解には違いないと思う。
ソケットの受信イベントを使えば、
上記処理で並行して実行しなければならない部分は無いようにも見えます。
επιστημηさん、dairygoodsさん 有難うございました。
いろいろ試して考えてみます。
すみません、再度、聞きたい事が・・・
MSDN ライブラリ
Windows ソケット : ブロッキング を見ますと
:
32 ビットのオペレーティング システムでは、ソケットを個別にワーカー スレッドに収容でき
ます。
:
との一文があります。
これって具体的にどういう事を言ってるのでしょうか?
今回、私がやりたい事を実現するカギになるのかなって思ってるんです。
>32 ビットのオペレーティング システムでは、ソケットを個別に
>ワーカー スレッドに収容できます。
この文自体はちょっと意味不明な表現ですが、
これに続く文章が具体的な解説だとおもいます。
たとえばConnect文を発行したとき
コネクトが完了するまで返ってこないのがブロックモードの動作です。
この場合、関数の内部で待ってしまうので、メインスレッドでこの関数を発行すると、
メッセージがくるまですべての処理が止まってしまいます。
これを別スレッドで動作させれば、そのスレッドは処理が終わるまで待てばよいだけですから簡
単につくれますよね。
この文章は、ソケット関係のクラスは CDCクラスなどと違い、メインスレッド以外でも動作す
るようにつくられているので、スレッドを分けると簡単につくれますよ。と、いうことをいって
います。
だたセカンダリスレッドでの動作にはバグがありまして、
スタティックリンクを行うばあいは、Knowledge Base J045480 を参照してください。
ソケット通信用のユーザインタフェーススレッドを用意して処理させるのが、一番きれいにでき
ると思います。
dairygoods さん
汎 さん
ありがとうございました。
おかげさまで段々理解できてきた気がしてきました。
チャレンジしてみます。