WPF多线程如何工作?

我知道
WPF中多线程的基本构建块,但我确实有一个令我困惑的问题.

WPF应用程序以两个线程开头:

one for handling rendering and another for managing the UI.

这听起来不错,但UI线程让我烦恼,UI Thread只不过是一个Application线程

The thread that creates a WPF UI element owns the elements and other
threads can not interact with the UI elements directly,this is known
as thread affinity.

说,我在Myapplication中有两个文本框和一个按钮,每个文本框都有自己的DispatcherObject,按钮点击我会用值更新文本框,希望这将由UI线程完成.

1.现在,我的问题是UI Thread是应用程序线程,Button将拥有自己的DispatcherObject和Two Text框将拥有自己的DispatcherObject,这个UI线程如何拥有自己的DispatcherObject并且与这些UI控件不同DispatcherObject可以更新文本框?

>我的另一个问题是,如果在后台线程中创建新文本框,那么我可以从UI线程更新此文本框吗?

请纠正我的理解,我无法继续下去.

最佳答案 每个DispatcherObject都与UI线程相关联.只有该线程才能访问该特定的DispatcherObject.在一个装饰精良的WPF应用程序中,只有一个UI线程.在那里创建和访问所有元素.

您可以拥有多个具有不同元素集的UI线程,但这将是一个带来很多问题的深奥场景.

If create new textbox in Background thread

该文本框将绑定到后台线程,并且只能在那里使用.因此,您无法将其挂钩到主元素树中.这将毫无用处.

点赞