UI线程和渲染线程有啥区别?
Posted
技术标签:
【中文标题】UI线程和渲染线程有啥区别?【英文标题】:What is the difference between UI thread and rendering thread?UI线程和渲染线程有什么区别? 【发布时间】:2021-05-23 02:59:06 【问题描述】:Microsoft 文档声明如下
通常,WPF 应用程序从两个线程开始:一个用于处理呈现,另一个用于管理 UI。渲染线程有效地隐藏在后台运行,而 UI 线程 接收输入、处理事件、绘制屏幕 并运行应用程序代码。
引自:https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/threading-model
根据上面引用的官方文档,有2个线程:
-
渲染线程,进行渲染
UI 线程,“绘制屏幕”?!
“绘制屏幕”是什么意思?是不是和其他线程做的“渲染”一模一样?
【问题讨论】:
docs.microsoft.com/en-us/troubleshoot/dotnet/framework/… 提供了相当丰富的信息 - 我认为 UI 线程告诉渲染线程要绘制什么,渲染线程将其转换为像素。 是的,似乎是这样。谢谢!您能否添加一个答案,以便我投票和接受? 我不想这样做,因为它基本上是一个仅链接的答案。我希望真正了解 WPF 的人可以准备添加具有真实经验的真实答案:) 【参考方案1】:WPF 有两个主要组件:一个是从user32
与Windows 操作系统交互。另一个基于DirectX
。
UI Thread
-> Message Bumping Thread
-> thread processing user interaction / task queuing (on user32).
渲染线程 -> 像素处理 (DirectX)。
【讨论】:
以上是关于UI线程和渲染线程有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章