我在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任务时按设备上的``主页''按钮(无论是手机还是模拟器)时,结果字符串在应用程序重新激活时不是完整长度...也就是说,它的结尾只是被剪切掉而没有任何异常或警告。

结果,我无法将json-data解析为对象。

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

提前谢谢大家!

最佳答案

为此,您需要将代码作为后台任务运行。即使停用了您的应用程序,后台任务也将运行。您可以参考:https://docs.microsoft.com/en-us/windows/uwp/launch-resume/support-your-app-with-background-tasks来学习后台任务。
后台任务有两种类型,进行中和结束过程。

关于c# - Windows Phone。应用程序停用损坏的ReadToEndAsync()结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44587902/

10-10 15:28