関数の実行でスタートと終了を監視するには


志保  2004-09-01 02:06:43  No: 116032

あるソフトのSDKにある_DOSNAP(1, 1, 50000)を使ってスナップ画像を取得します。(ユニットマップ、バッファー、タイムアウト)の設定で50000は
五秒間です。この間をフラッグを用いてスタートから終わりまでを監視したい(プログレッシブバーなどを表示)場合、何かよい方法は無いでしょうか?


特攻隊長まるるう  2004-09-02 03:26:54  No: 116033

>あるソフトのSDKにある_DOSNAP(1, 1, 50000)を使ってスナップ画像を取得します
SDK?…SDK?? Software Development Kit ?
http://e-words.jp/w/SDK.html

>あるソフトウェアを開発する際に必要なツールのセットにある_DOSNAP(1, 1, 50000)を使ってスナップ画像を取得します
…質問のタイトルに関数って書いてあるから API の関数みたいな解釈で
いいのかなぁ?(^^;)

        MsgBox("関数を起動します。")   ' スタート
        Call _DOSNAP(1, 1, 50000)
        MsgBox("関数の処理が終了しました。")   ' 終わり

…監視しなくてもコード上ですでに特定されてると思いますが?
通常の関数なら呼び出した地点がスタートで戻り値が戻ってくるか
制御が戻ってくるか…エラーがスルーされるか?…が終了なんじゃ
ないんでしょうか?。それまでイベントなんかはスタックされるで
しょうし…他のプログラムが走ったりするのですか?。処理は
止まってませんか?。

>プログレッシブバーなどを表示
そうなってくるとボクの苦手なマルチスレッドとかいう話になるの
かもしれませんが、その辺は『マルチスレッド』で過去ログ検索すれば
色々と情報が引っかかりますので、参考にしてみて下さい。


POTETO  2004-09-02 09:51:31  No: 116034

ダミーのプログレスバーを表示して5秒の間時間を稼ぐ???
_DOSNAPをコールする前にダミースレッド(Timerでも行けるのかな・・・)を開始して
_DOSNAPの処理が帰ってくれば止め、どの道タイムアウトの場合でも5秒後に止める。

意味を取り違えてるかな?
まぁでもコマンドボタンを押して仮にタイムアウトが発生したとして、
5秒間何も応答無しだとハングしてるのかと思っちゃうし、同じ5秒でもこっちの方が気持ち4秒位かも^^;


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




  


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