Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RestSharp异步后台线程_C#_Multithreading_Restsharp - Fatal编程技术网

C# RestSharp异步后台线程

C# RestSharp异步后台线程,c#,multithreading,restsharp,C#,Multithreading,Restsharp,我正在尝试使用RestSharp向服务器发送一些POST请求。然而: 服务器处理每个请求大约需要20秒 我不想在等待GUI完成时锁定它 RestSharp具有异步功能,因此我写了以下内容: var handler = _restClient.ExecuteAsync(request, response => { if(response.IsSuccessful) {

我正在尝试使用RestSharp向服务器发送一些POST请求。然而:

  • 服务器处理每个请求大约需要20秒
  • 我不想在等待GUI完成时锁定它
  • RestSharp具有异步功能,因此我写了以下内容:

    var handler = _restClient.ExecuteAsync(request, response =>
                    {
                        if(response.IsSuccessful)
                        {
                            Console.WriteLine("Success");
                        }
                    });
    
    我需要做的是确保这在一个单独的后台线程上发生,以免锁定GUI,并等待每个响应,检查是否成功,然后发送下一个响应


    有什么建议吗?某种类型的队列?

    < p>可以考虑使用异步/等待以便不锁定UI线程

    var response = await _restClient.ExecuteTaskAsync(request);
    if(response.IsSuccessful) {
        Console.WriteLine("Success");
    }
    

    那么“当前”请求取决于最后一个请求的结果?或者它们是独立的?它们都是独立的,只是请求会给服务器带来相当大的工作负载,所以我不想用请求使其过载。这正是我所需要的。我不知道里面有一个ExecuteTaskAsync。谢谢你指出这一点。