您的位置:首页 > 移动开发

浅析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。)

通过以上基础知识的储备,我们可以写出这样的代码:

System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
{
    StartCpuShow();
}));


上诉代码中用到了lambda表达式,如有疑问,可以参阅博客“浅析C#中的Lambda表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: