Tim*_*hko 6 .net timeout restsharp asp.net-core
我正在使用RestSharp.RestClient(105.2.4-rc4-24214-01)开发.net核心应用程序.我设置
RestClient.Timeout=1
Run Code Online (Sandbox Code Playgroud)
要么
RestClient.Timeout=10000
Run Code Online (Sandbox Code Playgroud)
然后调用我的测试API
var tcs = new TaskCompletionSource<IRestResponse>();
RestClient.ExecuteAsync(request, response => { tcs.SetResult(response); })
return tcs.Task.Result;
Run Code Online (Sandbox Code Playgroud)
但它仍然使用默认值100000并生成"任务被取消".异常仅在100000毫秒之后.
我怎样才能改变这个值?
小智 0
您可以使用 CancellationTokenSource 并使用其令牌来中止响应句柄。请尝试下面的代码设置 10 秒超时
System.Threading.CancellationTokenSource cts = new System.Threading.CancellationTokenSource ();
cts.CancelAfter (TimeSpan.FromMilliseconds(10000));
var tcs = new TaskCompletionSource<IRestResponse>();
RestRequestAsyncHandle handle = RestClient.ExecuteAsync(request, response => { tcs.SetResult(response); })
using (cts.Token.Register(() => handle.Abort()))
{
return (RestResponse)(await tcs.Task);
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!!
| 归档时间: |
|
| 查看次数: |
1803 次 |
| 最近记录: |