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