posted @ 2008-09-30 00:21 Nullnoid 阅读(2165) 评论(3) 推荐(0) 编辑
摘要:
在前一篇中我们看到通过使用PowerThreading中的AsyncResult<T>类,我们可以很方便的将一个同步操作封装成异步的方式。同时使用这种方法和PInvoke,我们也可以为现有的C++设备库,如蓝牙设备提供一个.Net的异步类库。这样我们可以实现大部分对设备访问的.Net异步类库。 但当我们有特殊要求时,如果调整LCD亮度时,就需要调用Window API中的DeviceI... 阅读全文
摘要:
Note: 本篇主要内容来自Jeffery Richard的Implementing the CLR Asynchronous Programming Model,看过的同学可以略过。 在前一篇中介绍了使用APM开发多线程程序的有点,同时关于如何使用APM方式的文章也很多了。所以,这篇主要想看看如何使用Jeffery Richard的Power Threading类库,来开发一个支持APM的类。 ... 阅读全文
posted @ 2008-09-09 19:21 Nullnoid 阅读(3507) 评论(0) 推荐(0) 编辑
摘要:
前段时间看奥运,一下子懒了下来,就停止更新了。本来上一篇,就准备写XAML和Extension的东西,不过最近回顾了前面写的东西,觉得有必要总结一下.Net中的异步编程模式 (APM) 。计划分四个部分: 如何实现支持APM的类 如果实现支持APM的硬件设备类 Event-based的APM Continuation-passing Style(CPS)的APM 有些内容相关的文章已经很多了,我写... 阅读全文
posted @ 2008-09-08 22:23 Nullnoid 阅读(3477) 评论(4) 推荐(1) 编辑
摘要:
在上一篇中我们分析了Win32和WinForm编写GUI应用程序会面对的主要问题。总结下来最重要的就是:如何高效的从Worker线程中更新界面。所以首先让我们看看WPF中是如何达到这个目的的。 DispatcherObject的使用 DispatcherObject类有两个成员方法,CheckAccess和VerifyAccess。CheckAccess功能和WinForm中Control.Inv... 阅读全文
posted @ 2008-08-06 23:47 Nullnoid 阅读(7909) 评论(8) 推荐(5) 编辑
摘要:
用Reflector分析WPF时,发现几乎所有的类的继承自DispatcherObject类。而该类非常简单,只有CheckAccess和VerifyAccess两个方法,一个Dispatcher只读属性和一个私有成员变量。正是由于继承了这个类,使WPF中其他类具有了多线程处理的能力。在分析DispatcherObject前,我们先看看一般Win32或WinForm GUI应用程序中存在的问题和解... 阅读全文
posted @ 2008-08-03 19:06 Nullnoid 阅读(6560) 评论(9) 推荐(5) 编辑