| ■68865 / ) |
Re[3]: WndProcの処理を止める方法 |
□投稿者/ kota (4回)-(2013/11/22(Fri) 23:54:41)
|
回答ありがとうございます。
工業用のPCにOSはXp(客指定)のOSでリアルタイムモニター のような使い方をしています。 PCIのGPIB、96IN/48OUTのI/Oボード、A/Dボード、3軸のモーター コントロールボード、RS−232Cのティーチングペンダント 計測用にマルチポイントシリアルRS-485が3本繋がっています。
GPIB、232C、I/O、A/Dボードはマルチスレッドタイマーで 読み込んで、メインスレッドにチェンジイベントをあげ、 RS-485は別ソフトがメッセージを投げてきます。
自作のタイマーを含めタイマーは200個ほど使っています。 計測器などは非同期でも構わないのですが、モーターコントロールは 同期が必要で、メインスレッドで処理しています。 モーターの動きを監視し目的の場所に移動するまで、メインスレッドは ループで待ちます。
待っている間、測定器からのメッセージはSenndMessageで待たせます。 ただしI/OからのStopコマンドは受け付ける為に、Doeventで処理を します。 この時、自分のWndProcのコールバックメソドに処理が入り込み、 抜け出さない(これは想像ですが)症状が起きます。 仕方なく現在は単にsleepを入れています。
そこで一時的にWndProcのコールバックを禁止する方法が無いものか と質問しました。
現在システムは殆ど完成していますがI/Oの読み込みが少し遅いために、 コードを見直しています。
|
|