等待不&x27;t等待rest响应C#netCore

等待不&x27;t等待rest响应C#netCore,c#,asynchronous,async-await,restsharp,C#,Asynchronous,Async Await,Restsharp,我有一个客户端,它必须进行连续的rest调用,rest调用将执行一些功能并具有一个状态。在运行rest调用的同时,客户端应每隔几秒钟轮询服务器,以检查服务器端进程的状态(以检查服务器是否完成了由于原始rest调用而执行的功能) 客户端有以下调用: await runMultiScan(scanId, exitActions); handleExitActions(exitActions); 而runMultiScan的实现方式如下: private async Task runMu

我有一个客户端,它必须进行连续的rest调用,rest调用将执行一些功能并具有一个状态。在运行rest调用的同时,客户端应每隔几秒钟轮询服务器,以检查服务器端进程的状态(以检查服务器是否完成了由于原始rest调用而执行的功能)

客户端有以下调用:

 await runMultiScan(scanId, exitActions);
 handleExitActions(exitActions);
runMultiScan
的实现方式如下:

    private async Task runMultiScan(Guid scanId, List<Action> exitActions)
    {                        
       var client = new RestClient(baseURL);

        var request = new RestRequest(@"api/scans", Method.POST);
        request.AddJsonBody(new Scan
        {
            sid = scanId.ToString(),
            scanPath = scansParentPath

        });
        var cancellationTokenSource = new CancellationTokenSource();
        await client.ExecuteTaskAsync(request, cancellationTokenSource.Token);
    }
服务器上的进程仍在运行扫描中,尚未返回。
这种行为的原因是什么(等待而不是等待帖子完成)?

不确定,位如果我没记错的话,RestClient类的默认超时设置为100秒?所以服务器上的函数需要超过100秒,RestClient超时应该是这样。检查服务器上的错误,潜在的死锁…?

不确定,位如果我没记错,RestClient类的默认超时设置为100秒?所以服务器上的函数需要超过100秒的时间,RestClient超时就是这样。在服务器上检查出了什么问题,潜在的死锁…?

在返回任务的方法名称中添加“Async”是个好主意,因为它有助于发现Async/Wait代码中的小错误。runScan()有什么作用返回还是执行?为什么在函数不使用exitActions时将exitActions传递到函数中?不确定,如果我没记错的话,位,RestClient类的默认超时设置为100秒?所以服务器上的函数需要超过100秒,RestClient超时应该是这样。检查服务器上的错误,潜在的死锁…?runScan返回void并执行一些操作对codetimeout的扫描操作似乎是合乎逻辑的。您是否控制正在调用的api?使用类似的方法进行测试,看看您是否得到了响应。最好在返回任务的方法名称中添加“Async”,因为它有助于发现Async/Wait代码中的小错误。runScan()是什么返回还是执行?为什么在函数不使用exitActions时将exitActions传递到函数中?不确定,如果我没记错的话,位,RestClient类的默认超时设置为100秒?所以服务器上的函数需要超过100秒,RestClient超时应该是这样。检查服务器上的错误,潜在的死锁…?runScan返回void并执行一些操作codetimeout的扫描操作似乎是合乎逻辑的。你控制你正在调用的api吗?用类似的东西进行测试,看看你是否能得到响应
    [HttpPost]
    public void Post([FromBody] ScanData scanInfo)
    {

       currentScan = new Scan(scanInfo);
      currentScan.runScan();                       

    }