4

我正在尝试CoreDispatcher在 Windows Phone 8 上使用 C++,以便我可以将工作项提交给 UI 线程 Dispatcher,以便我可以更新 UI 线程上的 UI 元素。但是,当我打电话时CoreWindow::GetCurrentForThread(),我会NULL回来。在文档中,它声明这在 WP8 上受支持。只要我正在获取NULL当前窗口,我就无法从中获取当前Dispatcher;有人知道如何在 WP8 上获取当前的 Dispatcher 吗?

4

2 回答 2

2

CoreWindow::GetForCurrentThread()记录为返回:

当前CoreWindow活动线程的 。

如果您从没有 a 的线程CoreWindow(如任何非 UI 线程)调用此函数,则此函数将返回nullptr.

假设应用程序已经完成初始化并且有一个视图,您可以通过应用程序的主视图使用调度程序CoreApplication::MainView。或者,您可以将 UI 线程的 传递Dispatcher^给在非 UI 线程上执行的代码,以便在需要调用回 UI 线程时可以访问它。

于 2013-01-24T16:04:17.043 回答
2

我用过

await CoreApplication.Views.First().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    //your code here
                });
于 2017-03-05T14:09:23.677 回答