2008年9月30日

摘要: 在前一篇中我们看到通过使用PowerThreading中的AsyncResult<T>类,我们可以很方便的将一个同步操作封装成异步的方式。同时使用这种方法和PInvoke,我们也可以为现有的C++设备库,如蓝牙设备提供一个.Net的异步类库。这样我们可以实现大部分对设备访问的.Net异步类库。 但当我们有特殊要求时,如果调整LCD亮度时,就需要调用Window API中的DeviceI... 阅读全文

posted @ 2008-09-30 00:21 Nullnoid 阅读(2160) 评论(3) 推荐(0) 编辑

2008年9月9日

摘要: Note: 本篇主要内容来自Jeffery Richard的Implementing the CLR Asynchronous Programming Model,看过的同学可以略过。 在前一篇中介绍了使用APM开发多线程程序的有点,同时关于如何使用APM方式的文章也很多了。所以,这篇主要想看看如何使用Jeffery Richard的Power Threading类库,来开发一个支持APM的类。 ... 阅读全文

posted @ 2008-09-09 19:21 Nullnoid 阅读(3504) 评论(0) 推荐(0) 编辑

2008年9月8日

摘要: 前段时间看奥运,一下子懒了下来,就停止更新了。本来上一篇,就准备写XAML和Extension的东西,不过最近回顾了前面写的东西,觉得有必要总结一下.Net中的异步编程模式 (APM) 。计划分四个部分: 如何实现支持APM的类 如果实现支持APM的硬件设备类 Event-based的APM Continuation-passing Style(CPS)的APM 有些内容相关的文章已经很多了,我写... 阅读全文

posted @ 2008-09-08 22:23 Nullnoid 阅读(3474) 评论(4) 推荐(1) 编辑

2008年8月6日

摘要: 在上一篇中我们分析了Win32和WinForm编写GUI应用程序会面对的主要问题。总结下来最重要的就是:如何高效的从Worker线程中更新界面。所以首先让我们看看WPF中是如何达到这个目的的。 DispatcherObject的使用 DispatcherObject类有两个成员方法,CheckAccess和VerifyAccess。CheckAccess功能和WinForm中Control.Inv... 阅读全文

posted @ 2008-08-06 23:47 Nullnoid 阅读(7887) 评论(8) 推荐(5) 编辑

2008年8月3日

摘要: 用Reflector分析WPF时,发现几乎所有的类的继承自DispatcherObject类。而该类非常简单,只有CheckAccess和VerifyAccess两个方法,一个Dispatcher只读属性和一个私有成员变量。正是由于继承了这个类,使WPF中其他类具有了多线程处理的能力。在分析DispatcherObject前,我们先看看一般Win32或WinForm GUI应用程序中存在的问题和解... 阅读全文

posted @ 2008-08-03 19:06 Nullnoid 阅读(6552) 评论(9) 推荐(5) 编辑

2008年8月2日

摘要: 最近工作需要,开始学习WPF,查看了一些资料,把学习心得写下来希望对大家有帮助。WPF开发于WinForm之后,从技术发展的角度,WPF比WinForm先进是不容置疑的。我觉得WPF相比于WinForm有下面的一些较好的特性:解决Window Handle问题在Windows GDI或WinForm开发中复杂的GUI应用程序,会使用的大量的控件,如Grid等。而每个控件或Grid cell都是一个... 阅读全文

posted @ 2008-08-02 22:35 Nullnoid 阅读(18617) 评论(2) 推荐(1) 编辑