我了解WPF中多线程的基本构建块,但是我有一个问题让我感到困惑。
WPF应用程序开始时会有两个线程:
一个用于处理渲染,另一个用于管理UI。
这听起来不错,但UI线程让我困扰,UI线程实际上就是应用程序线程。
创建WPF UI元素的线程拥有这些元素,其他线程无法直接与UI元素交互,这被称为线程亲和性。
假设我的应用程序中有两个文本框和一个按钮,并且每个文本框都有自己的 DispatcherObject ,在按钮单击时,我将使用值更新文本框,希望这将由 UI线程 完成。
1.现在,我的问题是UI线程是应用程序线程,按钮将有其自己的 DispatcherObject ,而两个文本框将有其自己的 DispatcherObject ,那么这个具有其自己的 DispatcherObject 且与这些UI控件的DispatcherObject不同的UI线程如何更新文本框?
- 我的另一个问题是,如果在后台线程中创建新的文本框,那么我能否从UI线程更新此文本框?
请纠正我的理解,我无法继续进行。