API version 1

- ‐

setProgress

タスクの中間結果をセットします。

セットした中間結果は、 Task.getProgress メソッドによって取得します。

中間結果は何度でも設定可能です。
Task.getProgressメソッドからは、最後に設定された中間結果を取得可能です。
このメソッドはタスクの処理内からのみ呼び出すことが出来るスタティックメソッドです。
タスクの処理以外で呼び出した場合、無視されます。

Task.getProgressメソッド, Task.setProgressメソッドの基本的な使い方は下記の通りです。

var func = lambda[]() {
  Application.sleep(0.5);
  Task.setProgress(1);  # t + 0.5[sec]
  Application.sleep(1);
  Task.setProgress(2);  # t + 1.5[sec]
  Application.sleep(1);
  return 10; # delta + 2.5[sec]
};

# t + 0.0[sec]
var task = AsyncTask.exec(func);
print(task.getProgress()); # null : t + 0.0[sec] (基準時間)
Application.sleep(1);
print(task.getProgress()); # 1 : t + 1.0[sec]
Application.sleep(1);
print(task.getProgress()); # 2 : t + 2.0[sec]
var result = task.get();
print(result); # 10 : t + 2.5[sec]以降

呼出形式一覧

呼出形式

説明

void setProgress(primitive value)

現在実行中のタスクの中間結果をセットします。

戻り値一覧

戻り値

説明

void

なし

引数一覧

引数

説明

value

タスクの中間結果
任意のプリミティブ値が指定可能です。

例外

なし

関連項目

getProgress メソッド



使用例 CRSダウンロード

Form Task {
   x = 0;
   y = 0;
   width = 800;
   height = 600;

   var func = lambda[]() {
           Application.sleep(0.5);
           Task.setProgress(1);  # t + 0.5[sec]
           Application.sleep(2);
           Task.setProgress(2);  # t + 2.5[sec]
           Application.sleep(2);
           return 10; # delta + 4.5[sec]
   };

   # t + 0.0[sec]
   var task = AsyncTask.exec(func);
   print("起動時 ",task.getProgress()); # null : t + 0.0[sec] (基準時間)
   Application.sleep(2);
   print("2秒後 ",task.getProgress()); # 1 : t + 2.0[sec]
   Application.sleep(2);
   print("4秒後 ",task.getProgress()); # 2 : t + 4.0[sec]
   Application.sleep(2);
   var result = task.get();
   print("終了時 ",result); # 10 : t + 2.5[sec]以降

   var tasJ = AsyncTask.exec(func);
   Application.sleep(2);
   print("再確認",tasJ.getProgress()); # 1 : t + 2.0[sec]
   print("実行確認 ",tasJ.isBusy);
   print("TaskID =",tasJ.taskId);
   var resulj = tasJ.abort();
   print("中止 ",resulj);
   /* windowsのエラーが発生する場合があります */
}