gpt4 book ai didi

c# - 在 Windows Phone 8 中获取 UI 调度程序

转载 作者:太空狗 更新时间:2023-10-29 17:46:33 25 4
gpt4 key购买 nike

我一直在开发一个使用 Windows 运行时组件 (WRC) 的 Windows Phone 应用程序。非 UI 线程访问的函数需要使用访问 Windows Phone 应用程序的回调。

void WControlPointCallback::OnListChange(char *pFriendlyName)
{
// Callback function to access the UI
pCallBack->AlertCaller("Message");
}

起初没有使用 Dispatcher 它抛出

Platform::AccessDeniedException.

然后我引用了this , thisthis .我尝试从 UI 获取 Dispatcher。

var dispatcher = Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher;

它抛出了System.AccessViolationException。然后我用了

pDispatcher = Windows::UI::Core::CoreWindow::GetForCurrentThread()->Dispatcher; 

在 C++ 代码中 (WRC)。但这也会抛出 Platform::AccessDeniedException

如何在Windows Phone中获取Dispatcher for UI?

最佳答案

您无法从适用于 Windows Phone 8 的 C++ 获取调度程序:您需要将调用移至 C# 端的 UI 调度程序,而不是 C++ 端。

如果你可以做这样的事情:

class DotNetClass : IWindowsRuntimeInterface
{
void AlertCaller(string message)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(message);
}
}
}

关于c# - 在 Windows Phone 8 中获取 UI 调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19264676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com