WindowsPhone。 ReadToEndAsync() 的结果因应用停用而损坏

Windows Phone. Result of ReadToEndAsync() corrupted by app deactivation

我在使用 StreamReader.ReadToEndAsync();

时遇到了一些问题
//some get response code ...
using (var response = getResponseTask.Result)
{
  using (var responseStream = response.GetResponseStream())
  {
    using (var responseStreamReader = new StreamReader(responseStream))
    {
     var readToEndTask = responseStreamReader.ReadToEndAsync();
     var responseResult = await readToEndTask;
     //and some json parse code here
    }
  }
}

因此,当我在 ReadToEndAsync 任务正在进行时按下设备上的主页按钮(无论是 phone 还是模拟器)时,结果字符串在应用程序重新激活时不是完整长度...即它刚刚结束没有任何异常或警告。

因此,我无法将我的 json 数据解析为对象。

如何解决或避免这种情况?

先谢谢大家了!

为此,您需要 运行 您的代码作为后台任务。即使您的应用已停用,后台任务也会 运行。您可以参考:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/support-your-app-with-background-tasks了解后台任务。 有两种类型的后台任务,in process 和 out process。