猿问

.Net Task 异步 报错: A task was canceled.

需求是这样的:

  1. 客户端a 向服务器发起一次请求 服务器hold请求 不返回

  2. 等待客户端b 发起请求后, 这个时候 a 的请求就可以返回了

这个是我这边大致的实现代码

然后报错

https://img4.mukewang.com/5b7fcfc3000143fa07680526.jpg

有没有大神知道为什么会这样, 有没有别的办法达到这个效果吗

把GetString方法改成这样好像也能达到预期, 但是不知道有没有Bug会不会很耗性能, 其实我更想知道的是前面为什么会报错, 以及解决办法

   public async Task<string> GetString()   {        while (!source.IsCancellationRequested)
        {             await Task.Delay(1 * 1000);
        }        //await Task.Delay(10 * 1000, source.Token);
        return "";
  }


宝慕林4294392
浏览 3173回答 1
1回答
随时随地看视频慕课网APP
我要回答