RestSharp异步后台线程

4

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

  1. 服务器需要大约20秒来处理每个请求
  2. 我不想在等待它们完成时锁定我的GUI。

RestSharp具有异步功能,因此我编写了以下内容:

var handler = _restClient.ExecuteAsync(request, response =>
                {
                    if(response.IsSuccessful)
                    {
                        Console.WriteLine("Success");
                    }
                });

我需要做的是确保这在一个单独的后台线程上发生,以免锁定GUI,并等待每个响应,检查是否成功,然后发送下一个响应。
有什么建议吗?使用某种队列?

所以“当前”的请求是否取决于上一个请求的结果?还是它们是独立的? - Fildor
它们都是独立的,只是请求会给服务器带来相当大的工作量,所以我不想用请求过载它。 - Tony
1个回答

4
您可以考虑使用async/await来避免UI线程被锁定。
var response = await _restClient.ExecuteTaskAsync(request);
if(response.IsSuccessful) {
    Console.WriteLine("Success");
}

正是我所需要的。我没有意识到那里有一个ExecuteTaskAsync。感谢您指出这一点。 - Tony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接