zoukankan      html  css  js  c++  java
  • RCP学习:Splash状态栏

    今天遇到个问题,Eclipse在Splash启动阶段对多线程的支持有点不同。根据某人的见解,org.eclipse.ui.internal.StartupThreading 可以解决这个问题

     
    我看了一眼Eclipse自己的Splash实现是这样的:
     
        private void updateUI(final Runnable r) {
            Shell splashShell = getSplash();
            if (splashShell == null || splashShell.isDisposed())
                return;
            
            Display display = splashShell.getDisplay();
            
            if (Thread.currentThread() == display.getThread())
                r.run(); // run immediatley if we're on the UI thread
            else {
                // wrapper with a StartupRunnable to ensure that it will run before
                // the UI is fully initialized
                StartupRunnable startupRunnable = new StartupRunnable() {
    
                    public void runWithException() throws Throwable {
                        r.run();
                    }
                };
                display.asyncExec(startupRunnable);
            }
        }
    Eclipse建议的状态监控,是用IProgressMonitor来解决,使用方式是重写
    org.eclipse.ui.splash.AbstractSplashHandler.getBundleProgressMonitor()这个方法。
     
    然后提供一个IProgressMonitor,参考org.eclipse.jface.wizard.ProgressMonitorPart。
     
     
  • 相关阅读:
    数据--第53课
    数据--第52课
    数据--第51课
    标准模板库中的优先队列(priority_queue)
    进程的定义
    进程的基本概念
    循环不变式
    插入排序
    模板声明
    标准模板库中的队列(queue)
  • 原文地址:https://www.cnblogs.com/anrainie/p/2850682.html
Copyright © 2011-2022 走看看