खैर, अपडेट हैक का जिक्र मेरे द्वारा किया गया है :) तो चलिए मैं आपको दिखाता हूं कि इसका उपयोग कैसे करना है, क्योंकि यह वास्तव में बहुत सरल है। इससे पहले कि आप की तरह के तरीकों के लिए किया था ExecuteAsyncGet
कि एक RestSharp कस्टम नामित प्रकार वापसी होगी RestRequestAsyncHandle
। इस प्रकार की प्रतीक्षा नहीं की जा सकती है क्योंकि यह async/await
काम करता है Task
और Task<T>
वापसी के प्रकार। मेरे पुल-अनुरोध ने मौजूदा async विधियों में ओवरलोड्स जोड़े हैं जो 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>
उदाहरण देता है । जैसा कि यह एक रिटर्न देता है Task
, आप await
इस पद्धति पर कीवर्ड का उपयोग कर सकते हैं और वापस Task<T>
लौटे प्रकार (इस मामले में IRestResponse
) प्राप्त कर सकते हैं।
आप यहां कोड पा सकते हैं: http://dotnetfiddle.net/tDtKbL