在SWT中使用线程的进度栏

2022-03-16 00:00:00 java swt
在我的SWT应用程序中,我希望使用进度条(org.eclipse.swt.widgets.ProgressBar) 我找到了一些例子,但是不能理解我需要执行后台任务的正确的流程和用法,我在算法阶段被暂停了,因为我可以分析应该有两个线程,一个用于后台作业,另一个用于进度栏,两者都应该同时执行,我不知道这是如何实现的,我找到了很多例子,但是,我很困惑我应该把我的后台任务代码(仍在搜索)放在哪里。有人能提供适合我的示例吗?


解决方案

您是否从SWT ProgressBar snippets页看到update a progress bar (from another thread)?它解释了很多。

ProgressBar必须是异步的才能在每个GUI框架中正常工作。它工作是在主(GUI)线程上独立显示一些值。因此,您必须编写自己的线程,它将维护ProgressBar,解析它的当前值,并显示值的变化(根据小部件本身呈现进度)。

在Swing中,您不必为ProgressBar创建您自己的线程,因为该类已经实现了上面建议的行为(使其本身成为另一个线程,并为您管理工作)。但由于SWT依赖于平台(以及其他原因),您必须自己管理它。

相关文章