美文网首页
WPF 中的多线程编程模型

WPF 中的多线程编程模型

作者: Ritchie_Li | 来源:发表于2022-05-12 18:42 被阅读0次

WPF 调度器 Dispatcher

WPF 每个元素都有用一个Dispatcher属性,Dispatcher会自动在线程池中按优先级对工作项进行排队和调度。通过该属性执行指定的委托,即可实现不同线程之间的交互,而不出现死锁问题。

中常用的方法:Invoke(), InvokeAsync( )

TextBox1.Dispatcher.Invoke( ...)

TextBox1.Dispatcher.InvokeAsync( ...)

Invoke( ) 方法是同步调用,即直到在线程池中实际执行完该委托它才返回。

InvokeAsync( ) 方法是异步调用,调用方法后立即将返回到调用语句,然后继续执行该语句后的代码。

Invoke ( )重载形式:

Invoke (Action);

Invoke (Action,DispatcherPriority);

Invoke (Action,DispatcherPriority, CancellationToken);

Invoke (Action,DispatcherPriority,CancellationToken,TimeSpan)

Invoke(Func);

Invoke(Func,DispatcherPriority);

Invoke(Func,DispatcherPriority, CancellationToken);

Invoke(Func,DispatcherPriority, CancellationToken,TimeSpan);

应用程序域以及基本操作

(1) 基本概念

应用程序域与线程的关系

应用程序域与进程的关系

什么时候使用应用程序域

(2)程序集与反射

创建程序域是依靠对程序集(.dll, .exe)进行反射来实现的。

程序集 Assembly 是.NET框架应用程序生成的块,它为公共语言运行库CLR提供了识别和实现类所需要的信息。

反射 提供了封装程序集,模块和类型的对象。可以使用反射动态的创建类的实例,将类绑定到现有对象,或从现有对象中获取类,并调用类的方法或访问其字段和属性。

System.Reflection 命名空间

1. Type类

使用Type对象的方法,字段,属性和嵌套类来查找有关类型的所有信息。

一,使用C#提供的typeof关键字获取指定类型的Type对象,如:

Type t= typeof(System.double);

二,调用Type类的GetType静态方法获取指定类型的Type对象,如:

Type t= Type.GetType("System.Double");

Type类提供的大多数方法都可以获取指定数据类型的成员信息,如构造函数,属性,方法,事件等。

Type t= typeof(MyClass);

System.Reflection.MethodInfo[ ] Methods = t.GetMethods();

foreach(var m in Methods)

{

    console.wirteline(m.Name);

}

2. Assembly类

它可以访问给定程序集的元数据,并包含可执行一个程序集的方法。

静态的Load方法,可以加载程序集(.dll文件或.exe)文件

例如:从Example.exe 的程序集加载到当前应用程序域,最后通过委托执行方法。

System.Reflection.Assembly a= System.Reflection.Assembly.Load("Example");

Type t= a.GetType("MyClass");

System.Reflection.MethodInfo m=t.GetMethod("MethodName");

Object obj=Activator.CreateInstance(t);

m.Invoke(obj, null);

相关文章

  • WPF 中的多线程编程模型

    WPF 调度器 Dispatcher WPF 每个元素都有用一个Dispatcher属性,Dispatcher会自...

  • java并发编程(四)

    java多线程编程(四) 引言: 内存模型的基础----内存模型相关的基本概念 java内存模型中的顺序一致性--...

  • golang的线程模型——GMP模型

    常见的线程模型 单线程服务器编程模型:Redis、Node.、JavaScript 多线程服务器编程模型:并发多个...

  • 原子类型与原子操作

    原子类型和原子操作 并行编程、多线程与C++11 常见的并行编程有多种模型:共享内存、多线程、消息传递等。 多线程...

  • Scala编程详解18:Actor入门

    Scala的Actor类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所不同...

  • java内存模型

    前言 在学习java多线程并发编程前,必须要了解java内存模型,只有了解java内存模型,才能知道为什么多线程并...

  • Netty篇:Reactor线程模型和NioEventLoop,

    Reactor线程模型 Reactor模式是一种典型的事件驱动的编程模型,主要有单线程模型,多线程模型以及主从线程...

  • 9.8动态语言层并发处理视频

    相关概念什么是进程、线程、协程什么是多进程、多线程同步阻塞模型异步非阻塞模型PHP并发编程实践 进程是一个“执行中...

  • iOS学习资料(下载地址)

    点击文字,可直接跳转到下载地址 1,多线程编程指南 2,核心动画编程指南 3,进程线程模型 4,Blocks 编程...

  • 多线程服务器的常见编程模型

    多线程服务器的常见编程模型 IO Models A ->[tcp send buffer] --->[tcp re...

网友评论

      本文标题:WPF 中的多线程编程模型

      本文链接:https://www.haomeiwen.com/subject/vyleurtx.html