SWT的UI线程问题 如果我加载数据并画在COMPOSITE上的时间比较多,想移到后台去,在前台显示“数据加载中”,用SWT的UI线程,可以做到数据在后台画完后显示到前台么?因为画的时候我直接控制GC自绘,会不会后台的画显示到前台时GC才开始画?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 双缓冲阿先在后台new一个GC画图,画完后再把图画到前台的GC上。 GC的图是双缓冲的,但是由于数据量大,我想把画的过程在后台完成,因为同一个界面还有其他控件一起显示,所以想用线程控制,不知道能不能,如何实现,我对SWT的线程还不是很了解。 可以的,但是要用Display的public void asyncExec(Runnable runnable)去起线程 他是直接去找runnable里的run()里的方法么?我可以在新的线程里修改主线程里生成的控件么? 是的,而且也只有用这种方式起的线程才能更新GUI元素(还有个syncExec(),是同步的),否则会报org.eclipse.swt.SWTException: Invalid thread access你这里应该用asyncExec()起异步线程。 swt线程用的时候要小心syncExec实际上是伪线程,用的时候先开一个真正的线程然后有关gui操作的时候都用syncExec,注意颗粒度,不要太大syncExec有性能问题,因为这个方法根本就是同步的方法. Java,两个JPanel之间怎么传值 win 7 32位可以装 myeclispe 8.5么? static 与null的问题 帮忙看一下BufferedReader类读文件的问题 高手帮忙解释下一个很短的程序 jar包中配置文件的读取问题 关于IBM Aglet的一个问题,希望有人知道 懂vrml的同志看看,我import vrml.*为什么通不过? 有关HashMap的顺序问题,请大家帮忙。 关于Switch语句的应用 麻烦高手帮我把 jSave_ActionPerformed(ActionEvent e) {}功能实现! java遍历抽象语法树
先在后台new一个GC画图,画完后再把图画到前台的GC上。
但是要用Display的public void asyncExec(Runnable runnable)去起线程
org.eclipse.swt.SWTException: Invalid thread access
你这里应该用asyncExec()起异步线程。
然后有关gui操作的时候都用syncExec,注意颗粒度,不要太大syncExec有性能问题,因为这个方法根本就是同步的方法.