Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分派器线程如何在wpf UI控件中工作_Wpf_Dispatcher - Fatal编程技术网

分派器线程如何在wpf UI控件中工作

分派器线程如何在wpf UI控件中工作,wpf,dispatcher,Wpf,Dispatcher,调度程序线程如何在wpf UI控件中工作?编辑 如果您有一个长时间运行的任务,请使用BackGroundWorker将其委托给后台线程,这样您就不需要使用dispatcher将消息传递回UI 这是一个非常广泛的问题。我建议你从这里开始 WPF中的大多数对象都源自 DispatcherObject,它提供 处理问题的基本结构 并发和线程。WPF是 基于消息传递系统 由调度员执行。这 工作原理与熟悉的Win32非常相似 信息泵;事实上,WPF dispatcher将User32消息用于 执行跨线程

调度程序线程如何在wpf UI控件中工作?

编辑

如果您有一个长时间运行的任务,请使用BackGroundWorker将其委托给后台线程,这样您就不需要使用dispatcher将消息传递回UI


这是一个非常广泛的问题。我建议你从这里开始

WPF中的大多数对象都源自 DispatcherObject,它提供 处理问题的基本结构 并发和线程。WPF是 基于消息传递系统 由调度员执行。这 工作原理与熟悉的Win32非常相似 信息泵;事实上,WPF dispatcher将User32消息用于 执行跨线程调用

实际上有两个核心概念可供参考 在讨论并发性时理解 在WPF中–调度程序和线程 亲和力

在WPF的设计阶段 目标是移动到一个单一的线程 执行,但不是线程 “亲缘”模型。线程亲和力 当组件使用 要执行的线程的标识 存储某种类型的状态。最 这种情况的常见形式是使用 线程本地存储(TLS)到存储 国家。线程关联要求 执行的每个逻辑线程都是 仅由中的一个物理线程拥有 操作系统,它可以 内存密集型。最后,WPF的 线程模型与 的现有User32线程模型 带线程的单线程执行 密切关系主要原因是, 是互操作性——像 OLE 2.0、剪贴板和Internet 资源管理器都需要单线程 亲和性(STA)执行

假设您有带有STA的对象 线程,你需要一种方法 线程之间通信,以及 验证您是否在正确的位置 线这就是政府的作用 调度员。调度器是一个基本的 消息调度系统,具有 多个优先队列。例子 消息类型包括原始输入 通知(鼠标移动),框架 功能(布局)或用户命令 (执行此方法)。通过推导 从DispatcherObject创建一个 具有STA行为的CLR对象,以及 将给一个指向 创建时的调度程序

编辑

如果您有一个长时间运行的任务,请使用BackGroundWorker将其委托给后台线程,这样您就不需要使用dispatcher将消息传递回UI


这是一个非常广泛的问题。我建议你从这里开始

WPF中的大多数对象都源自 DispatcherObject,它提供 处理问题的基本结构 并发和线程。WPF是 基于消息传递系统 由调度员执行。这 工作原理与熟悉的Win32非常相似 信息泵;事实上,WPF dispatcher将User32消息用于 执行跨线程调用

实际上有两个核心概念可供参考 在讨论并发性时理解 在WPF中–调度程序和线程 亲和力

在WPF的设计阶段 目标是移动到一个单一的线程 执行,但不是线程 “亲缘”模型。线程亲和力 当组件使用 要执行的线程的标识 存储某种类型的状态。最 这种情况的常见形式是使用 线程本地存储(TLS)到存储 国家。线程关联要求 执行的每个逻辑线程都是 仅由中的一个物理线程拥有 操作系统,它可以 内存密集型。最后,WPF的 线程模型与 的现有User32线程模型 带线程的单线程执行 密切关系主要原因是, 是互操作性——像 OLE 2.0、剪贴板和Internet 资源管理器都需要单线程 亲和性(STA)执行

假设您有带有STA的对象 线程,你需要一种方法 线程之间通信,以及 验证您是否在正确的位置 线这就是政府的作用 调度员。调度器是一个基本的 消息调度系统,具有 多个优先队列。例子 消息类型包括原始输入 通知(鼠标移动),框架 功能(布局)或用户命令 (执行此方法)。通过推导 从DispatcherObject创建一个 具有STA行为的CLR对象,以及 将给一个指向 创建时的调度程序


请为被否决发表评论请在你的问题中更精确一点请为被否决发表评论请在你的问题中更精确一点嗯。。我的疑问是,当一个长时间运行的进程在UI后面发生时,WPF UI将不会响应,或者使用dispatcher线程可以解决吗?嗯。。我的疑问是,当一个长时间运行的进程在UI后面发生时,WPF UI将不会响应,或者使用dispatcher线程可以解决吗?