免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fuwenyu0307
打印 上一主题 下一主题

swt使用中的线程问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-25 16:26 |显示全部楼层 |倒序浏览
现有两个类。类A完成SWT界面,类B完成后台处理。现在要在A中显示B中处理情况。例如使用MessageBox,ProgressBar。现在是B必须要用线程来完成。这样在运行过程中。B使用到A中的组件时就会抛出一个SWT异常。原因是B类线程不能使用A类中的组件。不知道该怎么解决啊??

论坛徽章:
0
2 [报告]
发表于 2004-11-26 09:57 |显示全部楼层

swt使用中的线程问题!

我再把情况说的详细点。A类创建的窗口要接受一些数据的输入,再将这些数据传递给B类的一个方法进行处理。这些是肯定没有问题的啦。主要是在B类使用这些数据前肯定要进行是否为空的判断。如果为空就要进行提示。显示一个MessageBox。这个MessageBox创建需要一个Shell。最开始是传递A类中的。后来是在B类中新建一个。就可以调用A类的方法显示MessageBox。问题是我要在B类执行操作的时候,A类的窗体不死掉。点终止能终止B类的操作。这肯定需要B类用一个线程来完成操作。这就是我问问题的原因。sakulagi说的的那个方法我听说过。但不知道具体怎么用。我在B类中使用了这个方法。但是还是一样的异常抛出。因为B类中没有任何窗体的创建,所以这里调用的Display这个对象是从A类中传递过来的。我也用另外的方法获取A类的Display对象,也是不行的。我是这样调用的display.syncExec(this);因为A类本身是用线程完成的。所以参数是this。

论坛徽章:
0
3 [报告]
发表于 2004-11-29 13:47 |显示全部楼层

swt使用中的线程问题!

谢谢。哈。我看了你的代码了。知道是怎么解决的了。3Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP