アプリケーションに進行状況モニター ダイアログを実装したいと考えています。この機能は、大きなファイル/フォルダーをある場所から Windows 内の別の場所にコピーすることです。ウィンドウ内でコピー アンド ペーストを行う場合、約 7 ~ 10 分かかる場合があります。eclipse rcp プログレス モニター ダイアログを介して実装する場合、タスクを完了するための合計時間をどのように計算するのでしょうか?ファイルが小さい場合は時間が非常に短く、ファイルが大きい場合は膨大な時間がかかるためです。TOTAL_TIME = 10000.
では、彼女に対するハードコーディングの利点は何ですか? ジョブが完了すると、約 7 ~ 8 分かかったと言えます。これは、次のコードを実行したときに発生した混乱です。
ファイルサイズアルゴリズムに基づいてコピーします。
サンプルの例があり、合計時間が次のように言及されていますTOTAL_TIME = 10000.
以下はサンプルコードです:
public void run(IProgressMonitor monitor) throws InvocationTargetException,
InterruptedException {
monitor.beginTask("Running long running operation",
indeterminate ? IProgressMonitor.UNKNOWN : TOTAL_TIME);
for (int total = 0; total < TOTAL_TIME && !monitor.isCanceled(); total += INCREMENT) {
Thread.sleep(INCREMENT);
monitor.worked(INCREMENT);
if (total == TOTAL_TIME / 2) monitor.subTask("Doing second half");
}
monitor.done();
if (monitor.isCanceled())
throw new InterruptedException("The long running operation was cancelled");
}
}