代理 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。
我正在使用代理 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。