Pur*_*ome 94 .net c# asynchronous restsharp async-await
我正在努力寻找一些使用RestSharp async和的异步C#代码的现代示例await.我知道Haack最近有更新,但我不知道如何使用新方法.
此外,我如何提供取消令牌以便可以取消操作(例如,如果一个人厌倦了等待并按下应用程序UI中的取消按钮).
Eri*_*oom 183
好吧,Haack所指的更新是由我做的:)所以让我告诉你如何使用它,因为它实际上非常简单.以前你有这样的方法ExecuteAsyncGet会返回一个名为的RestSharp自定义类型RestRequestAsyncHandle.作为async/awaiton Task和Task<T>return类型,无法等待此类型.我的pull-request为返回Task<T>实例的现有异步方法添加了重载.这些Task<T>重载在其名称中添加了一个添加的"任务"字符串,例如调用了Task<T>重载.对于每个新的重载,有一种方法不需要指定,而且有一种方法.ExecuteAsyncGetExecuteGetTaskAsync<T>Task<T>CancellationToken
那么现在来看一个如何使用它的实际例子,它还将展示如何使用CancellationToken:
private static async void Main()
{
var client = new RestClient();
var request = new RestRequest("http://www.google.com");
var cancellationTokenSource = new CancellationTokenSource();
var restResponse =
await client.ExecuteTaskAsync(request, cancellationTokenSource.Token);
// Will output the HTML contents of the requested page
Console.WriteLine(restResponse.Content);
}
Run Code Online (Sandbox Code Playgroud)
这将使用ExecuteTaskAsync返回Task<IRestResponse>实例的重载.当它返回a时Task,您可以await在此方法上使用关键字并返回Task<T>返回的类型(在本例中IRestResponse).
你可以在这里找到代码:http://dotnetfiddle.net/tDtKbL