gpt4 book ai didi

c# - Xamarin.Forms System.Threading.Tasks.TaskCanceledException

转载 作者:行者123 更新时间:2023-12-03 12:54:30 25 4
gpt4 key购买 nike

我们在生产中有一个 Xamarin.Forms 应用程序。在我们的测试阶段,我们没有遇到此类问题。然而,在 Azure Mobile Center我们遇到了一些崩溃问题。例如,一个崩溃问题如下所示,

A task was canceled.

1 TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task)
2 TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task)
3 TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task)
4 TaskAwaiter`1[TResult].GetResult ()
5 HttpClientHandler+<SendAsync>d__63.MoveNext ()
6 ExceptionDispatchInfo.Throw ()
...
17 RequestBuilderImplementation+<buildCancellableTaskFuncForMethod>c__AnonStoreyA`1+<buildCancellableTaskFuncForMethod>c__async9[T].MoveNext ()
18 ExceptionDispatchInfo.Throw ()
23 APIClient+<Portfolio>d__6.MoveNext ()
24 ExceptionDispatchInfo.Throw ()
29 PortfolioPage+<LoadPortfolio>d__3.MoveNext ()
30 ExceptionDispatchInfo.Throw ()

在标题部分显示,System.Threading.Tasks.TaskCanceledException

我有一个名为 PortfolioPage 的页面和一个名为 LoadPortfolio 的方法。方法如下,

async void LoadPortfolio()
{
try
{
APIResponse.Portfolio portfolio = await new APIClient().Portfolio(selectedDate);
MessagingCenter.Send<PortfolioPage, APIResponse.Portfolio>(this, "LoadedPortfolio", portfolio);
}
catch (ApiException e)
{
Debug.WriteLine(e.Message);
if (e.StatusCode == System.Net.HttpStatusCode.Unauthorized) UIUtil.gotoAuthenticate(this);
else
MessagingCenter.Send<PortfolioPage, APIResponse.Portfolio>(this, "LoadedPortfolio", null);
}
}

我是 Xamarin 和 C# 新手。不确定如何从此错误日志中提取信息以及如何解决 TaskCanceledException 问题。任何帮助表示赞赏。

提前致谢。

最佳答案

“HttpClientHandler”的功能与 System.Threading.Tasks; 中的任务类似。图书馆。这意味着当它收到取消请求或由于某种“预期”原因响应失败时,它会抛出异常。

我建议将请求包装在 try/catch block 中,并弄清楚您希望如何处理“ThrowForNonSuccess”异常。

关于c# - Xamarin.Forms System.Threading.Tasks.TaskCanceledException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45218370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com