SWT多线程的问题

whusha 2009-11-04 09:32:37
先上代码
	button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Properties config=new Properties();//记录配置项
try {
config.load(new FileInputStream("integrate.properties"));
config.setProperty("password",text_5.getText());
FileOutputStream outputFile = new FileOutputStream("integrate.properties");
config.store(outputFile, "test");
outputFile.close();
} catch (Exception e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
Display.getCurrent().asyncExec(new Runnable(){

public void run() {
SqlFileExecutor sfe=new SqlFileExecutor(text_2);
try {
sfe.execute("data.sql");
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}

}

});

}

问题描述:
此代码是想要在一个shell里的一个按钮添加事件响应,当触发的时候,开启一个新的线程执行数据库建表脚本,表很多,所以要在每成功创建一个表后在该shell的一个text上打印xx表创建成功,
这段代码可以运行,但是在触发事件后,也就是建表,同时text打印信息的时候,只要一点这个界面,这个界面就卡死在那里了,只有等到线程执行完毕后才能恢复,大虾们来帮忙啊,谢
...全文
65 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveofmylife 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 scottxp 的回复:]
Display.getCurrent().asyncExec 外面再套两层马甲
[/Quote]
请看我重新发的那一个帖子,麻烦说具体一些,谢谢
scottxp 2009-11-04
  • 打赏
  • 举报
回复
Display.getCurrent().asyncExec 外面再套两层马甲

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧