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。
     
     
  • 相关阅读:
    poj 2386 Lake Counting
    hdu 3998 Sequence
    hdu 1556 Color the ball
    synchronized和ReentrantLock的区别
    4种常用线程池
    java深浅拷贝
    ConcurrentHashMap总结
    List原理
    volatile关键字
    java关键字总结
  • 原文地址:https://www.cnblogs.com/anrainie/p/2850682.html
Copyright © 2011-2022 走看看