Brokered UWP组件项目模板和异步

时间:2016-03-15 15:36:08

标签: c# win-universal-app winrt-component

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

所以我替换了BrokeredComponent1类:

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

by:

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秒后出现),但是我无法在发布模式下工作,应用程序只是在单击按钮时崩溃。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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