アプリケーション(プログレスバー)が固まらないようにするためには?


OPE  2010-04-09 01:25:56  No: 71539

開発環境:VS2005 C++

UI上にあるボタンを押すと時間がかかり、画面が固まってるように見えるため、
ボタンを押されたらプログレスバーを表示するようにしました。
また、時間がかかる処理はライブラリ側に実装されています。

そこで、プログレスバーを進めるための関数をUI側に作成し、
その関数ポインタをUI側からライブラリ側に渡して、
ライブラリ側の時間がかかる処理内で進捗度合いを判断し、
適宜コールバック関数を呼ぶようにしています。

プログレスバーの進捗具合は期待通りに動くのですが、
プログレスバー表示中に他のアプリケーションをEnableにすると、
アプリケーションが固まって見えたり、
時々プログレスバーの進捗がとまったりします。

どなたか良い手段をご教授いただけないでしょうか?


aetos  2010-04-09 11:13:54  No: 71540

時間がかかる処理は別スレッドで走らせるのが基本です。


OPE  2010-04-09 18:34:46  No: 71541

aetosさま

ありがとうございます。  同一スレッドで何とかしたいのですが、
不可能でしょうか?  私が調査した限り、メッセージポンプを使えば良い??
のかと想像するのですが、よく分かりません。


maru  2010-04-09 20:00:34  No: 71542

> 私が調査した限り、メッセージポンプを使えば良い??
多分これは、ローカルにメッセージループを作成することだと思いますが、
その場合、時間がかかる処理側に実装する必要があります。
時間がかかる処理はライブラリとのことで、それは出来ないはずです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加