代理 UWP 组件项目模板和异步

Brokered UWP Component Project Templates and Async

我正在使用代理 UWP 组件项目模板 (https://visualstudiogallery.msdn.microsoft.com/d2e9cac0-66a8-464a-a902-55ae765c8e6e),并测试我是否可以从代理组件调用异步方法。

所以我替换了 BrokeredComponent1 class :

namespace Server
{
    public sealed class BrokeredComponent1
    {
        public string GetValue()
        {
            return "Hello .NET world";
        }
    }
}

作者:

namespace Server
{
    public sealed class BrokeredComponent1
    {    
        public IAsyncOperation<string> GetValueAsync()
        {
            return Task.Run(() =>
            {
                Thread.Sleep(3000);
                return "Hello .NET world";
            }).AsAsyncOperation();
        }
    }
}

然后在 Button_Click 方法的 MainPage 中调用它,如下所示:

string brokeredComponentValue = await bc.GetValueAsync();

一切似乎都在调试模式下工作("Hello .NET world" 在 3 秒后出现),但我无法使其在发布模式下工作,当我单击按钮时应用程序崩溃。

有什么想法吗?

问题是 UseDotNetNativeToolchain 在 Realease 模式下的 csproj 中默认设置为 true。