如何从C ++ UWP App中的线程访问UI?

时间:2017-12-04 11:56:15

标签: visual-c++ uwp uwp-xaml windowsiot windows-iot-core-10

我有一个原生的C ++多线程控制台应用程序。 我将此应用程序移植到UWP应用程序中,只需更改/ 现在我想在UI中将文本打印到文本框中,因为UWP应用程序中没有可用的控制台应用程序。

为此,我需要从一个帖子访问一个文本框。

2 个答案:

答案 0 :(得分:1)

在TextBox(或您的页面,或您要访问的UI线程上的任何控件)上调用Dispatcher-> RunAsync,以便在相应的UI线程上执行代码:

myTextBox->Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal,
    ref new Windows::UI::Core::DispatchedHandler ([this]
{
    myTextBox->Text = "Test";
}));

答案 1 :(得分:0)

这是关于C ++中的异步编程。您可以参考这个article。它描述了在Visual C ++中使用异步方法和管理线程上下文的推荐方法。您可以在 <中填充文本框em> task :: then 方法。另一方面,您也可以使用DispatchedHandler来访问用户界面,请参阅此sample