Haack'ın bahsettiği güncelleme benim tarafımdan yapıldı :) Bu yüzden size nasıl kullanılacağını göstereyim, çünkü aslında çok basit. Daha önce, böyle ExecuteAsyncGet
bir RestSharp özel türü döndüren yöntemler vardı RestRequestAsyncHandle
. Bu tür, async/await
çalışma Task
ve Task<T>
dönüş türleri olarak beklenemezdi . Çekme isteğim, Task<T>
örnekleri döndüren mevcut zaman uyumsuz yöntemlere aşırı yükler ekledi . Bu Task<T>
aşırı yüklemelerin adlarına eklenen bir "Görev" dizesi vardır, örneğin Task<T>
aşırı yükleme ExecuteAsyncGet
çağrılır ExecuteGetTaskAsync<T>
. Yeni Task<T>
aşırı yüklerin her biri için, a'nın CancellationToken
belirtilmesini gerektirmeyen bir yöntem vardır ve bunu yapan bir tane vardır.
Şimdi, nasıl kullanılacağına dair gerçek bir örneğe geçelim, bu da a'nın nasıl kullanılacağını gösterecek 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);
}
Bu, ExecuteTaskAsync
bir Task<IRestResponse>
örnek döndüren aşırı yüklemeyi kullanacaktır . A döndürdüğünde Task
, await
anahtar kelimeyi bu yöntemde kullanabilir ve Task<T>
döndürülen türü (bu durumda IRestResponse
) döndürebilirsiniz .
Kodu burada bulabilirsiniz: http://dotnetfiddle.net/tDtKbL