[VB6・WinXP]API関係
お世話になります。
わかりにくい題名で申し訳ありません。
プログラムからShell関数で外部プログラムを呼び出します。
呼び出したプログラムの終了を判定するために、
Do〜Loopで、GetExitCodeProcess APIを使っています。
このDo〜Loop処理のために、CPU負荷が100%となってしまいます。
これを回避するにはどのような方法がベストでしょうか。
私が考えた案として、Do〜Loopの代わりにTimerコントロールを使って、
500msや100ms間隔で終了を判定するようにしました。
これだとCPU負荷の問題は解決したのですが、
Timerコントロールを使うことによる問題はないでしょうか?
このよう処理を経験した方がいらっしゃいましたら、是非ご教授いただきたく思います。
よろしくお願いいたします。
Do〜Loop中にSleepを挟んでみたらどうでしょうか?
終了するまで待機するのなら
WaitForSingleObjectのほうがいいのでは?
WSH使うという手もありますが。
書き忘れましたがSleepも使用しない方向で。
Sayさん、回答ありがとうございます。
WaitForSingleObjectを使った場合、画面が白抜けしてしまいますよね。
結局それを防ぐためにDo〜LoopでDoEventsしなければなりません。
良い方法はないものでしょうか・・
すいません。
過去ログを調べて解決しました。
ツイート | ![]() |