ঠিক আছে, হ্যাক আপডেটটি উল্লেখ করছেন যা আমার দ্বারা তৈরি করা হয়েছে :) সুতরাং এটি কীভাবে ব্যবহার করতে হয় তা আমাকে আপনাকে দেখাতে দিন, কারণ এটি আসলে খুব সহজ। পূর্বে আপনার কাছে এমন পদ্ধতি ছিল ExecuteAsyncGetযার নাম অনুসারে একটি রেস্টশার্প কাস্টম টাইপ ফিরে আসবে 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>উদাহরণ দেয় returns এটি কোনও ফেরত দেওয়ার সাথে সাথে Taskআপনি awaitএই পদ্ধতিতে কীওয়ার্ডটি ব্যবহার করতে পারেন এবং ফিরে আসা Task<T>প্রকারটি ফিরে পেতে পারেন (এই ক্ষেত্রেIRestResponse ) ।
আপনি কোডটি এখানে খুঁজে পেতে পারেন: http://dotnetfiddle.net/tDtKbL