在.net Core中httpClient添加配置超时时长也没用
services.AddHttpClient("PPHttpClient", config => { config.DefaultRequestHeaders.Add("Accept", "*/*"); config.DefaultRequestHeaders.Add("AcceptLanguage", "en-US"); config.Timeout = TimeSpan.FromMinutes(5); config.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate"); });
task.Wait()是一种比较老的写法,而async+await是目前主流的异步处理方案
不要使用Task a=()=>; a.Wait(); 会导致堵塞。 使用这样await a;
参考:WepApi TaskCanceledException A任务已取消。httpClient-腾讯云开发者社区-腾讯云 (tencent.com)
将
account = result.Content.ReadAsAsync<cuentaM>().Result;
替换为
account = await result.Content.ReadAsAsync<cuentaM>();
Task.Delay中传CancellationToken就是会抛异常,要想不抛异常用Task.WhenAny和TaskCompletionSource的组合即可。
static TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>(); string GetB() { tcs.SetCanceled(); return ""; } async Task<string> GetString() { await Task.WhenAny(Task.Delay(3000), tcs.Task); return ""; }
标签:Task,TaskCanceledException,WepApi,await,task,async,config,Wait From: https://www.cnblogs.com/hofmann/p/17918806.html