一般基于UI界面另开线程容易出现界面假死的情况,界面控件变得不可控,程序崩溃,本文使用了基于UI另开线程的函数的调用display.syncExec(new Runnable()){ ....},大大提高了编程的效率。
本文实现的是向串口开线程发送和接收数据,若要知晓RS232/RS485串口发送接口相关代码,
请详见另一篇博客:http://blog.csdn.net/snadijssajskkj/article/details/50483566
本文代码如下(直接插入SWT界面UI函数中):
new Thread() {
public void run() {
// 此处为另外一个单独线程,非UI线程
while(flag) {
// 非UI线程访问UI
display.syncExec(new Runnable() {
@Override
public void run() {
// 这段代码实际上会被放在UI线程中执行
//本人的设计为串线程向串口发送数据
serialread.writeComm(msg);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
}.start();