基于接口和队列的线程操作UI方式
2012-08-06 20:56
253 查看
在实际开发应用中,非UI线程操作UI是普遍存在的,在.net下一般是通过Control.Invoke的方法来进行操作,但到处都是Control.Invoke代码维护可是一件麻烦的事情。以下通过接口和队列来规范非UI线程操UI的实现。
既然要规范处理那接口是个不错的选择,以下定义一个简单的执行接口
?
以下是扩展一个简单的操作类封装
?
规则定好了,那接下来要做的事情就是写一个简单的队列处理。
?
一个简单的调用规则就完成,接下来就是如果在winform下面用了;首先可以在界面定义一个timer,可以指定时间内执行Dispatch的工作。
?
当需要在线程中操作UI只需要向ThreadInvoke.Dispatch添加item即可,对于它的执行是完全不用关心的。以下是起一个线程不停地向一个文本框添加一个GUID值
?
这样一个不使用Control.Invoke来实现非UI线程操作UI的方法就完成了.至于灵活性来说那就看你如何发挥IInvokeItem了:)
既然要规范处理那接口是个不错的选择,以下定义一个简单的执行接口
?
?
?
?
?
相关文章推荐
- 基于接口和队列的线程操作UI方式
- 基于接口和队列的线程操作UI方式
- Android进程等级分类、UI线程操作方式
- 基于boost 线程并行技术实现消息队列方式[记录]
- Runnable接口实现线程,Handler消息队列更新UI
- c#非委托方式在子线程里操作UI控件(实际上运算逻辑在子线程,更新还是在主线程,解决了UI界面无响应的问题)
- 一个完整的操作UI线程的例子,用到了多种方式
- Python 进程线程之间通信方式(1,基于队列的)
- Android UI 线程执行操作的三种方式
- java学习日记_100:线程的第二种实现方式——实现Runnable接口
- 子线程中进行UI操作
- php、js两种不同方式根据关键词返回经纬度接口【基于Google map API】
- 跨线程操作UI
- RCP 非UI线程调用UI操作
- Tensorflow实战学习(四十九)【模型存储加载,队列线程,加载数据,自定义操作】
- Android 子线程中进行UI操作(非发送消息)
- 创建线程的两种方式:继承Thread类和实现Runnable接口
- 通过培训学到的一个java的基于线程,网络编程等的文件多线程断点下载器(断点功能还在操作实践中)
- 细说UI线程和Windows消息队列
- 基于event 实现的线程安全的优先队列(python实现)