如何从 C++ UWP App 中的线程访问 UI?
How to access UI from thread in C++ UWP App?
我有一个本机 C++ 多线程控制台应用程序。
我以最少的更改将此应用程序移植到 UWP 应用程序/
现在我想将文本打印到 UI 中的文本框中,因为 UWP 应用程序中没有可用的控制台应用程序。
为此,我需要从线程访问文本框。
这是关于C++异步编程的,可以参考这个article.It describes the recommended way to consume asynchronous methods in Visual C++ and managing the thread context.You can populate text box within task::then method.On other hand, you can also use DispatchedHandler to access UI,please see this sample。
在您的 TextBox(或您的页面,或您要访问的 UI 线程上的任何控件)上调用 Dispatcher->RunAsync,以便在相应的 UI 线程上执行您的代码:
myTextBox->Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal,
ref new Windows::UI::Core::DispatchedHandler ([this]
{
myTextBox->Text = "Test";
}));
我有一个本机 C++ 多线程控制台应用程序。 我以最少的更改将此应用程序移植到 UWP 应用程序/ 现在我想将文本打印到 UI 中的文本框中,因为 UWP 应用程序中没有可用的控制台应用程序。
为此,我需要从线程访问文本框。
这是关于C++异步编程的,可以参考这个article.It describes the recommended way to consume asynchronous methods in Visual C++ and managing the thread context.You can populate text box within task::then method.On other hand, you can also use DispatchedHandler to access UI,please see this sample。
在您的 TextBox(或您的页面,或您要访问的 UI 线程上的任何控件)上调用 Dispatcher->RunAsync,以便在相应的 UI 线程上执行您的代码:
myTextBox->Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal,
ref new Windows::UI::Core::DispatchedHandler ([this]
{
myTextBox->Text = "Test";
}));