2016-06-27 16 views
1

は、ここに私のコードです:私はそれは私のコマンドを実行するのにかかる正確にどのくらい知っているループがアクティブな間、タイマーは動作していますか?

setTimer(delay, (SEEDKEY_MAXTRY * SEEDKEY_FREQ) + (LOGIN_MAXTRY * LOGIN_FREQ)); 
do { 
    // waits, until all operations have been executed; 
} while(isTimerActive(delay)); 

ので、私は明示的な値にタイマーdelayを設定します。私はいくつかの価値を返すまで待たなければなりません。

この時点でシミュレーションが終了すると、パネルはWindows-「応答なし」になり、シミュレーションを終了できる唯一の方法はTaskmanagerです。

私はdo ... whileステートメントの中で、タイマーはもっと時間がかかったり、全く実行されないという唯一の説明だと思います。 ({}中に同じ)

誰かがこの考えを確認することができますか、私の問題を解決する方法を教えてください。

答えて

0

方法を知りたいこと、CAPLはstackoverflowの上であまりにも普及していないので、私はいつも...、読者のために


を回避策を見つけるOK:私はちょうどグローバル状態変数を使用

私の処理が終了するまでユーザーがアクションを実行するのを制限します。

+0

CAPLはわかりませんが、ほとんどの言語ではタイマーはフロー制御とは独立しています。 –

+0

それはCAPLのようにすべきですが、ループのためにうまくいかなかったので、私は別の方法でそれを行いました。誰かが上記のコードで別のエラーを発見しない限り、私はCAPLがタイマを使って計算された結果に依存するループを使って少しバギーかもしれないと思います... –

関連する問題