小编cal*_*ncx的帖子

c#:在完成之前经过一定时间后重新启动异步任务

所以,我一直在开发一个使用 REST API 请求的应用程序,但是,由于某种原因,该 API 随机变得无响应(有时它会在 3 秒内给出响应,有时请求会花费很长时间,以至于它会抛出 timeOutexception)所以每当我调用一个电话时,如果在一定时间内没有检索到响应,我会使用此代码重新启动调用:

bool taskCompletion = false;
        while(taskCompletion == false)
        {
            try
            {
                using (CancellationTokenSource cts = new CancellationTokenSource())
                {
                    cts.CancelAfter(timeSpan);
                    await task(cts.Token);
                    taskCompletion = true;
                }
            }
            catch (OperationCanceledException)
            {
                taskCompletion = false;
            }
        }
Run Code Online (Sandbox Code Playgroud)

我的 API 请求之一如下:

 public static async Task<Result> task(CancellationToken ct)
    {
        string Url = baseurl
        ApiHelper instance = new ApiHelper();

        using (HttpResponseMessage response = await instance.ApiClient.GetAsync(Url, ct))
        {
            if (response.IsSuccessStatusCode)
            {
                var x = await response.Content.ReadAsStringAsync();
                var result = …
Run Code Online (Sandbox Code Playgroud)

c# rest asynchronous servicenow

6
推荐指数
1
解决办法
115
查看次数

标签 统计

asynchronous ×1

c# ×1

rest ×1

servicenow ×1