gpt4 book ai didi

multithreading - C# WinRT 组件在从 WinJS 调用的 UserControl 构造函数中失败

转载 作者:行者123 更新时间:2023-12-04 06:47:18 26 4
gpt4 key购买 nike

我们正在使用 JavaScript (WinJS) 构建一个 WinRT 应用程序,该应用程序通过 C# WinRT 组件库访问 REST/JSON Web 服务。在组件库中,我们有一个登录控件(很像 WebAuthenticationBroker),它允许我们将 ACS 登录与我们的 REST 服务一起使用。

应用层:

  • 客户端 (JS)
  • WinRT 组件 dll (C#)
  • C# ClassLibrary dll (C#)
  • 用户控件(Xaml/C#,包含 WebView)

  • 问题:尝试创建登录控件时,WinRT 抛出“HRESULT: 0x8001010E (RPC_E_WRONG_THREAD)”异常(进入 UserControl 的构造函数时) 即使我通过 Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher 调用它(在 MSDN article I found about WinJS/C++ component 中推荐)。

    如果我从 Xaml/C# 客户端调用它,无论是否使用 Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher.RunAsync(),代码都可以工作。

    我试图用谷歌搜索这个,也阅读了所有的 UserControl、Dispatcher 和 WinJS 文档,但我没有找到任何相关的内容。这是一个已知问题,有人可以提出解决方法吗?

    由于我是第一次发帖,请保持温柔:-) 非常欢迎任何帮助!

    最佳答案

    Xaml-based WinRT controls cannot be used in Javascript-based WinRT projects.您可以使用任何 WinRT 类库,但不能使用其中的 Xaml 控件。

    如果您仍想将 HTML-Javascript 与 Xaml 结合使用,我建议您创建一个基于 Xaml 的项目,并将您的 HTML UI 包装在 WebView control 中。 .

    关于multithreading - C# WinRT 组件在从 WinJS 调用的 UserControl 构造函数中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14379549/

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