了解WPF框架

首当其冲的,自然是System.Object类了。这里主要想说的是,WPF的大部分代码都是使用托管代码编写,原因是因为CLR的许多不错的特性(如内存管理、错误处理、通用类型系统等。),可以让开发的程序更有效、更健壮。但是,框架并不是所有代码都是托管的,也有一部分是由非托管代码编写。原因主要是因为WPF是展现层框架,它的显示需要和DirectX很紧密的集成起来,进行硬渲染和软渲染,以得到性能上的提升。
    下面的结构图中,红色部分是属于WPF框架的。其中,只有milcore这个部分是采用非托管代码编写。所以,可以看出,我们在使用WPF的时候,是不会接触到里面的非托管代码的。

DispatcherObject(异步)
    命令空间:System.Threading。     WPF Dispatcher使用User32的消息机制来实现跨线程调用。工作机制类似Win32的消息泵。     WPF的线程模型和User32的线程模型保持一致,使用STA。主要原因是互可操作性,因为现在的很多系统都是需要STA的,如IE、OLE2.0、剪贴板等。     通过Dispatcher,我们可以实现线程间的通信。继承自DispatcherObejct的类,都获取了一个所在线程的Dispatcher引用,这样,任何使用这个类的对象的线程,都可以使用它的Dispatcher来发送“消息”。 一般情况下,我们使用这个类的意图主要是异步线程调用DispatcherObject的Dispather来让DispatcherObject的创建线程做一些特定的事情,如设置界面上某个值。这样大大方便了我们开发人员。想想我原来用WindowsForm开发的时候,为了异步调用显示一下Label,写出来的代码真是够繁琐。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值