当前位置: 代码迷 >> Eclipse >> SWT 中在界面兑现时间实时刷新
  详细解决方案

SWT 中在界面兑现时间实时刷新

热度:5745   发布时间:2013-02-25 21:52:48.0
SWT 中在界面实现时间实时刷新
SWT 中在界面实现时间实时刷新,我是在一个界面想完成,然后就写了个线程内部类,掉了界面的一个label然后这个线程死循环去刷新时间也就这个label,但是尝试了很多次都是界面死掉了。而且发现只要一有其他线程访问了界面的内容,界面就会死。而且asyncExec这个方法也不管用啊,照样死。
swt ,界面,?假死,多线程?
这样肯定会卡UI线程啊,

class TimeChange extends Thread
{
    public void run()
    {
        for(;;)
            {
                 try{
                    sleep(1000);
                    }catch{}
                    shell.getDisplay().asyncExec(new Runnable(){
                         public void run() {
                            label.setText();
                         }
                    });
                    
             }
    }
}

new TimeChange().start();



shell.getDisplay().asyncExec本身的意思并非起一个线程,UI线程只有一个,这个调用的代码意思是把参数里的那个那些代码放到UI线程中执行,你却在这里面去sleep,当然会卡死..

要注意,runnable本身只是一个非常普通的接口,不是线程;
  相关解决方案