Eclipse 如何从非UI线程关闭SWT中的MessageDialog?

Eclipse 如何从非UI线程关闭SWT中的MessageDialog?,eclipse,swt,Eclipse,Swt,我在UI线程中运行了进度对话框。另一个线程正在后台运行,完成后必须关闭进度对话框 在UI线程上: messageDialog.open(); // synchronous 我已经从背面线程尝试过: UiUtils.syncExec(new Runnable() { @Override public void run() { dialog.close();

我在UI线程中运行了进度对话框。另一个线程正在后台运行,完成后必须关闭进度对话框

在UI线程上:

messageDialog.open(); // synchronous
我已经从背面线程尝试过:

UiUtils.syncExec(new Runnable()
        {
            @Override
            public void run()
            {
                   dialog.close();
            }
       }); 

但是关闭事件不由UI线程处理。

是否可以发布一个简单的运行/可执行代码,因为我可以在工作线程完成后关闭shell。UiUtils是否发布到SWT显示?UiUtils.syncExec的功能是什么?请尝试显示.getDefault().syncExec(…)。请参阅参考:。