C# &引用;应用程序调用了为不同线程封送的接口;创建菜单输出时

C# &引用;应用程序调用了为不同线程封送的接口;创建菜单输出时,c#,windows,multithreading,microsoft-metro,C#,Windows,Multithreading,Microsoft Metro,我在创建MenuFlyout的新实例时遇到此错误。我搜索了一点,但找不到任何内容。代码很简单: var tmpFlyout = new MenuFlyout(); 我尝试从其他线程创建此实例,但也没有帮助,仍然得到异常。在哪些情况下会弹出此异常 找到了这个答案 问题是您的事件处理程序没有在UI上执行 线。我认为最好的解决方法是转换EAP (基于事件的异步模式)方法(基于任务 异步模式)使用TaskCompletionSource: 也许这可以帮助您解决问题。RunAsync解决了这个问题 我尝

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

var tmpFlyout = new MenuFlyout();
我尝试从其他线程创建此实例,但也没有帮助,仍然得到异常。在哪些情况下会弹出此异常

找到了这个答案

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


也许这可以帮助您解决问题。RunAsync解决了这个问题

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