Bem, a atualização à qual Haack está se referindo foi feita por mim :) Deixe-me mostrar como usá-la, pois na verdade é muito simples. Anteriormente, você tinha métodos como ExecuteAsyncGet
esse retornariam um tipo personalizado RestSharp chamado RestRequestAsyncHandle
. Este tipo não pode ser esperado como tipos de async/await
trabalho Task
e Task<T>
retorno. Minha solicitação pull adicionou sobrecargas aos métodos assíncronos existentes que retornam Task<T>
instâncias. Essas Task<T>
sobrecargas têm uma string "Tarefa" adicionada a seus nomes, por exemplo, a Task<T>
sobrecarga para ExecuteAsyncGet
é chamada ExecuteGetTaskAsync<T>
. Para cada uma das novas Task<T>
sobrecargas, há um método que não exige que um CancellationToken
seja especificado e outro que exige .
Agora vamos a um exemplo real de como usá-lo, que também mostrará como usar 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);
}
Isso usará a ExecuteTaskAsync
sobrecarga que retorna uma Task<IRestResponse>
instância. Como ele retorna a Task
, você pode usar a await
palavra-chave neste método e obter o Task<T>
tipo retornado de (neste caso IRestResponse
).
Você pode encontrar o código aqui: http://dotnetfiddle.net/tDtKbL