浅析C#(WPF)中的Application类
2015-08-28 10:24
190 查看
Application类
封装WFP应用程序。
命名空间:System.Windows
语法:public class Application : DispatcherObject, IQueryAmbient
可以看到Application继承了DispatcherObject类和IQueryAmbient接口。
首先看一下DispatcherObject类
DispatcherObject类
表示与Dispatcher关联的对象
命名空间:System.Windows.Threading
语法:pulic abstract class DispatcherObject
那么Dispatcher又是什么呢?
Dispatcher类
提供用于管理线程工作项队列的服务
语法:public sealed class Dispatcher
这里特别谈一下Dispatcher的Invoke方法(Action)
执行指定的Action的线程同步Dispatcher与之关联。
那么Action又是什么呢?
Action委托
封装一个方法,该方法不具有参数并且不返回值。
语法:public delegate void Action()
接下来看一下IQueryAmbient接口
IQueryAmbient接口
查询是否将指定的属性视为当前范围中的环境属性。
命名空间:System.Windows.Markup
语法:public interface IQueryAmbient
下面介绍几个Application类的属性
Current属性
获取当前AppDomain的Application对象
语法:public static Application Current { get; }
Dispatcher属性
获取与此 DispatcherObject 关联的 Dispatcher。 (继承自 DispatcherObject。)
通过以上基础知识的储备,我们可以写出这样的代码:
上诉代码中用到了lambda表达式,如有疑问,可以参阅博客“浅析C#中的Lambda表达式”
封装WFP应用程序。
命名空间:System.Windows
语法:public class Application : DispatcherObject, IQueryAmbient
可以看到Application继承了DispatcherObject类和IQueryAmbient接口。
首先看一下DispatcherObject类
DispatcherObject类
表示与Dispatcher关联的对象
命名空间:System.Windows.Threading
语法:pulic abstract class DispatcherObject
那么Dispatcher又是什么呢?
Dispatcher类
提供用于管理线程工作项队列的服务
语法:public sealed class Dispatcher
这里特别谈一下Dispatcher的Invoke方法(Action)
执行指定的Action的线程同步Dispatcher与之关联。
那么Action又是什么呢?
Action委托
封装一个方法,该方法不具有参数并且不返回值。
语法:public delegate void Action()
接下来看一下IQueryAmbient接口
IQueryAmbient接口
查询是否将指定的属性视为当前范围中的环境属性。
命名空间:System.Windows.Markup
语法:public interface IQueryAmbient
下面介绍几个Application类的属性
Current属性
获取当前AppDomain的Application对象
语法:public static Application Current { get; }
Dispatcher属性
获取与此 DispatcherObject 关联的 Dispatcher。 (继承自 DispatcherObject。)
通过以上基础知识的储备,我们可以写出这样的代码:
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { StartCpuShow(); }));
上诉代码中用到了lambda表达式,如有疑问,可以参阅博客“浅析C#中的Lambda表达式”
相关文章推荐
- ios获取当前屏幕所显示Controller
- Idea、AndroidStudio快捷键整理
- 使用validate进行表单验证时土方法(appendTo)改变error显示的位置
- How to read Android crash log and stack trace
- Android各种访问权限Permission详解
- iOS 后台播放音乐
- Android SDK体系简析
- Q_OBJECT宏的作用
- Android中级篇之百度地图SDK v3.5.0-Hello BaiduMap[图解第一次运行百度地图]
- 微信统一支付接口返回“签名错误”的可能原因
- iOS开发多线程篇—多线程简单介绍
- iOS 7 tabbar 透明的问题
- 解决Android Studio更新SDK下载慢的问题
- Android微信智能心跳方案
- QT:线程、事件与QObject
- 基于AndroidPN的消息推送应用
- ios键盘类型设置
- Android界面布局学习总结
- 让iosApp应用只支持横屏
- [Android]简单的在线翻译应用