Що ж, оновлення Haack має на увазі зроблене мною :) Тож дозвольте мені показати вам, як ним користуватися, оскільки це насправді дуже просто. Раніше у вас були такі способи, ExecuteAsyncGet
які б повернули користувальницький тип RestSharp з назвою RestRequestAsyncHandle
. Цього типу не можна було очікувати, оскільки він async/await
працює Task
та Task<T>
повертається. Мій запит на додавання додав перевантаження існуючим методам асинхронізації, які повертають Task<T>
екземпляри. Ці Task<T>
перевантаження мають доданий рядок "Завдання" до їх імен, наприклад, викликається Task<T>
перевантаження для . Для кожної з нових перевантажень існує один метод, який не потребує вказівки, і є такий, який є.ExecuteAsyncGet
ExecuteGetTaskAsync<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);
}
Це використовуватиме ExecuteTaskAsync
перевантаження, яка повертає Task<IRestResponse>
екземпляр. Коли він повертає a Task
, ви можете використовувати await
ключове слово у цьому методі та отримати Task<T>
повернутий тип повернутого типу (у даному випадку IRestResponse
).
Ви можете знайти код тут: http://dotnetfiddle.net/tDtKbL