開発環境:VS2005 C++
UI上にあるボタンを押すと時間がかかり、画面が固まってるように見えるため、
ボタンを押されたらプログレスバーを表示するようにしました。
また、時間がかかる処理はライブラリ側に実装されています。
そこで、プログレスバーを進めるための関数をUI側に作成し、
その関数ポインタをUI側からライブラリ側に渡して、
ライブラリ側の時間がかかる処理内で進捗度合いを判断し、
適宜コールバック関数を呼ぶようにしています。
プログレスバーの進捗具合は期待通りに動くのですが、
プログレスバー表示中に他のアプリケーションをEnableにすると、
アプリケーションが固まって見えたり、
時々プログレスバーの進捗がとまったりします。
どなたか良い手段をご教授いただけないでしょうか?
時間がかかる処理は別スレッドで走らせるのが基本です。
aetosさま
ありがとうございます。 同一スレッドで何とかしたいのですが、
不可能でしょうか? 私が調査した限り、メッセージポンプを使えば良い??
のかと想像するのですが、よく分かりません。
> 私が調査した限り、メッセージポンプを使えば良い??
多分これは、ローカルにメッセージループを作成することだと思いますが、
その場合、時間がかかる処理側に実装する必要があります。
時間がかかる処理はライブラリとのことで、それは出来ないはずです。
ツイート | ![]() |