通用 Windows 在 Xamarin Essentials 上使用安全存储时平台应用冻结

Universal Windows Platform app freezes when using Secure Storage on Xamarin Essentials

我正在使用 Xamarin Essentials 添加安全存储,但每次我尝试在通用 Windows 平台 (UWP) 上保存时,应用程序一直冻结(没有错误)。谁能解释一下为什么会结冰?

注意:我在 Android 设备上运行没有问题。

try
{
   await SecureStorage.SetAsync("username", Username.Text);
   await SecureStorage.SetAsync("password", Password.Text);
}
catch (Exception){}

根据此form,在 UWP 上使用安全存储之前不需要设置。

线程被锁定所以我不得不添加 Device.BeginInvokeOnMainThread 所以代码最终看起来像这样:

try
{
  Device.BeginInvokeOnMainThread(async () =>{
   await SecureStorage.SetAsync("username", Username.Text);
   await SecureStorage.SetAsync("password", Password.Text);
  });
}
catch (Exception){}

我有类似的问题。代码适用于 iOS 和 Android,但适用于 UWP(阻止应用程序)。 Understanding Async, Avoiding Deadlocks in C# 文章阐明了该问题。它解释了应用程序可能被阻止的原因,以及如何妥善处理它。