长时间运行的操作

org.eclipse.jface.operations 包为需要进度指示器或允许用户取消操作的长时间运行的操作定义接口。

可运行程序和进度

平台核心运行时定义常见接口 IProgressMonitor, 在运行长时间运行的操作时,它用来向用户报告进度。在为用户显示进度很重要的情况下,客户可以提供监视器来作为许多平台 API 方法中的参数。

JFace 为实现进度监视器的用户界面的对象定义了多个特定接口。

IRunnableWithProgress 是用于长时间运行的操作的接口。此接口的运行方法具有 IProgressMonitor 参数,该参数用来报告进度并检查用户的取消操作。

IRunnableContext 是在用户界面中可以报告进度的不同位置的接口。实现此接口的类可以选择使用不同的技术来显示进度和运行操作。例如,ProgressMonitorDialog 通过显示进度对话框来实现此接口。IWorkbenchWindow 通过在工作台窗口的状态行中显示进度来实现此接口。WizardDialog 实现此接口以便在向导状态行中显示长时间运行的操作。

注意:工作台用户界面为 WorkspaceModifyOperation 中的操作提供附加支持。此类简化了用来修改工作区的长时间运行的操作的实现。它在 IRunnableWithProgressIWorkspaceRunnable 之间进行映射。有关进一步的详细信息,参见 javadoc。

模态操作

提供 ModalContext 类用来运行客户代码的透视图中是模态的操作。它用于 IRunnableContext 的不同实现。如果插件需要等待长时间运行的操作完成才能继续执行,则可以使用 ModalContext 来完成此任务,并且仍然让用户界面保持响应。

在模态上下文中运行操作时,可以选择将该操作分配到不同的线程中。如果 fork 为 false,则操作将在调用的线程中运行。如果 fork 为 true,则操作将在新线程中运行,调用线程将停止,并且运行用户界面事件循环,直到该操作终止为止。

有关用户界面事件循环的更多信息,参见客户的线程问题

Copyright IBM Corporation and others 2000, 2003.