【发布时间】:2012-10-10 19:34:19
【问题描述】:
我有一组执行文件操作的 API,例如saveToFile(CustomObject objectToSave);
由于文件操作可能很长,我决定应该向用户显示一些指示,例如进度条。
我读到了ProgressMonitorDialog,所以我尝试了它,但它并不能完全按照我的需要工作(或者更好的是我不知道如何正确使用它)。
目前我这样做:
ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(theShell);
try {
progressDialog.run(false, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask("Saving your data", 100);
try {
Utils.saveToFile(objectToSave);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
monitor.done();
}
});
这段代码非常快地显示了一个进度对话框并结束,但问题是在较慢的 PC 上,这会堆叠直到返回 Utils.saveToFile,而在保存完成之前我不知道如何指示中间进程。
我发现一个thread 提到了IProgressMonitor.UNKNOWN,但它没有说明monitor 在performRead(_fileName, monitor); 期间发生的事情
我将如何解决这个问题?
【问题讨论】:
标签: java eclipse swt eclipse-rcp jface