Apache Pivot 线程模型

本文介绍了Pivot框架中的线程模型,详细解释了GUI线程与非GUI线程的区别及交互方式。包括如何在GUI线程中启动后台任务,并确保这些任务能够正确地与GUI组件交互。

Pivot 线程模型

每个pivot Application一般都 最多一个 GUI线程和 0个或者至少一个非GUI线程组成。

GUI 线程复杂组件界面的更新,只有在GUI线程才可以操作pivot 控件。因此你可以认为pivot的线程模型和大多数的GUI框架的线程模型是一样的,当线程模型。在非GUI线程操作组件对象及其属性时会引发运行时异常。更特殊的时Pivot的数据模型也是属于GUI线程一部分,比如操作 TreeView的treeData时,虽然treeData是一个List的对象,但是由于Pivot的MVC框架模型,是的M和V有了自动了关联,修改了M,V自动改变,因此不能在非GUI线程中直接修改一个控件持有的数据模型。当然,如果数据是独立于控件的,任何线程都可以修改,因此不会导致其关联视图控件的更新。因此在pivot Application中,经常需要涉及下面2个问题:
1.如何在GUI线程开启一个后台线程
 你可以使用传统的Java Thread开启一个线程。只不过在GUI界面中很难知道后台线程合适运行结束。
 可以使用org.apache.pivot.util.concurrent.Task和TaskListener等组合来启动一个后台线程,这样,Pivot GUI可以捕获到后台线程的执行结果。
2.如果在后台线程操作GUI组件
 后台线程是不能直接操作GUI组件的,需要封装一个Runable对象提交给GUI线程排队执行。通过调用ApplicationContext.queueCallback等方法实现。
 
 http://blog.youkuaiyun.com/chenxiaohong3905/archive/2010/01/26/5258549.aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值