当前位置: 代码迷 >> Eclipse >> swt 与 多线程的有关问题
  详细解决方案

swt 与 多线程的有关问题

热度:66   发布时间:2016-04-23 14:34:11.0
swt 与 多线程的问题
swt做一个client   访问数据库然后再显示   在访问数据库的时候,窗口不能动了,是不是需要把访问数据库中的操作放到一个线程里来执行啊?

------解决方案--------------------
对数据库的操作应尽量放到后台,当然是用多线程。
我的做法 是一个界面类,处理界面上的问题,另一个后台类处理数据方面的问题,界面类执行到需要处理数据的地方就开一个新线程交给后台类,后台类处理完成数据后将必要的结果返还给前台界面类处理。
------解决方案--------------------
eclipse中有一个Job的API可以使用,可以看到progress monitor,也可以取消
可以参见这篇文章
http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html
------解决方案--------------------
弄一个临时空间,把你数据库的操作放到后台单独一个线程执行,然后把结果写到临时空间,然后SWT里面调用一个线程,每隔几秒去那个临时空间读取数据。我现在做的一个程序就是这样把前后台隔离的,很麻烦…………
------解决方案--------------------
SWT因为是界面程序,你需要在一个GUI线程中添加,不然当然会停住了。
Java code
   Runnable run=new Runnable(){      public void run(){                              display.aysncExec(new Runnable(){                       public void run(){                       }                   });    }}
  相关解决方案