WPF笔记

1、Dispatcher
由于UI界面是主线程创建的,所以子线程不能直接更新由主线程维护的UI界面
Dispatcher,即调度程序,在每个线程中都唯一存在,负责线程中数据的各项操作。例如线程A创建了实例I,则线程B就不能直接去更新I,而必须通过线程A来委托处理。
UI 线程对一个名为 Dispatcher 的对象内的工作项进行排队。
Dispatcher基于优先级选择工作项,并运行每一个工作项,直到完成。每个UI线程都必须至少有一个Dispatcher,并且每个 Dispatcher 都只能在一个线程中执行工作项。
要构建响应速度快、且用户友好的应用程序,诀窍是减小工作项,以最大限度地提高Dispatcher吞吐量。这样,工作项将永远不会因为在Dispatcher队列中等待处理而失效。输入与响应之间的任何可察觉的延迟都会使用户不快。
后台线程可以请求 UI 线程代表它执行操作。这是通过向 UI 线程的 Dispatcher 注册工作项来完成的。
Dispatcher 类提供两个注册工作项的方法:Invoke 和 BeginInvoke。
这两个方法均调度一个委托来执行。
Invoke 是同步调用,也就是说,直到 UI 线程实际执行完该委托它才返回。
BeginInvoke 是异步的,将立即返回。
2、Binding了解
如果想让作为Binding源的对象具有自动通知Binding自己的属性值已经变化的能力,那么就必须要让类实现INotifyPropertyChanged接口并在属性的set语句在激发PropertyChanged事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值