创建菜单浮出控件时的"The application called an interface that was marshalled for a different thread"



我在创建 MenuFlyout 的新实例时遇到此错误。我搜索了一下,但找不到任何东西。代码很简单:

var tmpFlyout = new MenuFlyout();

我尝试从不同的线程创建此实例,但这也没有帮助,仍然出现异常。在哪些情况下会弹出此异常?

在这里找到这个答案

问题是事件处理程序无法在 UI 上执行 线。我认为解决这个问题的最好方法是转换您的 EAP (基于事件的异步模式)方法到 TAP(基于任务) 异步模式)使用 TaskCompletionSource:

也许这对你有帮助

Dispatcher.RunAsync 解决了这个问题。

我尝试使用Task.Run方法,但问题仍然存在。正如建议的那样,我用RunAsync做了,问题解决了。

相关内容

最新更新