`
defrag_sly
  • 浏览: 128118 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SWT中多线程应用 2 例

阅读更多
使用多线程,时时更新Label显示当前时间。

例子代码包括两部分,run方法使用eclipse提供的默认方法实现,SWTlabel刷新。
run2方法使用timetask线程(java多线程方式)实现。
不管什么方式,都回避不了,eclipse多线程对java多线程的限制(在java线程中不可以直接操作SWT的control)。
但是个人认为:倾向使用java线程套eclipse线程的方式,因为多线程的负担由eclipse平台转移至了java虚拟机。对于非常复杂的数据计算或许可以提高效率。减少eclipse的响应时间。
(以上观点,仅仅是使用中的猜测,没有任何证据。希望我可以发现证据支持这一猜测)
public class Runner {
		private Label ll;

		private boolean start = false;

		private Timer timer;

		public Runner(Label ll) {
			this.ll = ll;
		}

		public void start() {
			start = true;
			// run();
			run2();
		}

		private void run() {
			Display.getDefault().asyncExec(new Runnable() {
				public void run() {
					if (!start)
						return;
					ll.setText(new Date().toString());
					Display.getDefault().timerExec(2000, this);
				}
			});
		}

		private void run2() {
			timer = new Timer(true);
			timer.scheduleAtFixedRate(new TimerTask() {
				public void run() {
					if (!start)
						return;
					Display.getDefault().asyncExec(new Runnable() {
						public void run() {
							ll.setText(new Date().toString());
						}
					});
				}
			}, 1000, 1000);
		}

		public void stop() {
			start = false;
		}
	}
2
2
分享到:
评论

相关推荐

    swt页面后台多线程接受ModBUS协议Socket通讯的数据

    4. **多线程**:在SWT应用程序中,为了防止主线程(UI线程)被长时间运行的任务阻塞,后台处理通常在独立的线程中进行。这可以通过Java的Thread类或者Runnable接口实现。在本例中,接收和解析ModBUS数据的线程应独立...

    SWT_全接触 SWT_全接触 SWT_全接触

    3. **消息循环**:SWT使用了类似Windows的消息循环机制,而不是Swing中的事件分发线程。通过不断地读取消息并分发处理,维持窗口的响应状态。 ### 结论 SWT作为一款强大的GUI组件库,对于那些希望在Java应用程序中...

    SWT(JFace)体验之Sash(活动控件)

    首先,我们需要创建一个`Display`对象,它是SWT中用于管理GUI线程和绘制的上下文。然后创建一个`Shell`对象,它是SWT窗口的基本构建块。`Shell`的实例化通常伴随着`Display`的实例,这样它们就能一起工作。 接下来...

    java编程百例(内含java源文件)

    多线程是Java的一大特色,可以让你的程序同时执行多个任务。通过实例,你可以了解Thread类的使用,线程同步方法(如synchronized关键字、wait()和notify()),以及如何实现Runnable接口来创建线程。 6. **网络编程...

    java实现网页截图含DJNativeSwing组件JAR包

    在实际开发中,`WebToImage.java`可能还会包含错误处理、配置选项(如分辨率、是否包含滚动条等)以及多线程支持等功能,以满足不同场景的需求。 总的来说,通过使用DJNativeSwing库,Java开发者可以轻松地在Swing...

    java高手真经 光盘源码

    javathread.zip 10.Java多线程编程(线程池、生产者消费者、存取款实例) javautil.zip 11.Java常用实体类 javaxml.zip 14.XML属性文件 第4部分(6个程序包) javagui.zip 15.Java GUI库对比实例 javaawt.zip ...

    Rational Application Developer 7.5

    强大的调试器支持多线程和远程调试,使得问题定位更为便捷。 6. **持续集成**:支持CVS和Subversion等版本控制系统,便于团队协作。同时,它也集成了IBM Rational Team Concert,提供项目管理、任务分配、代码审查...

    java基础案例与开发详解案例源码全

    12.1.5 为什么需要多线程309 12.1.6 线程分类309 12.2 线程的生命周期309 12.2.1 线程的状态及转换310 12.2.2 线程睡眠311 12.2.3 线程让步313 12.2.4 线程的加入313 12.3 线程的调度和优先级314 12.4 线程的同步315...

    Eclipse插件开发

    - 类库结构、资源管理、多线程访问GUI资源等是理解SWT的关键点。 - **3.2 SWT疑难点解析** - Button、Text、Table等控件的具体使用方法及其特性。 - 如何在SWT中显示AWT/Swing对象,解决跨平台UI兼容性问题。 - *...

    java源码包2

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目源代码

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    java源码包---java 源码 大量 实例

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包3

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java源码包4

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

Global site tag (gtag.js) - Google Analytics