首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

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

2013-02-18 
SWT 中在界面实现时间实时刷新SWT 中在界面实现时间实时刷新,我是在一个界面想完成,然后就写了个线程内部

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本身只是一个非常普通的接口,不是线程;

热点排行