मैं एसिंक का उपयोग कर वेब क्लाइंट का उपयोग करके लिंक कॉल करने के लिए नमूना उदाहरण बना रहा हूं और अब विधि का इंतजार कर रहा हूं, मैं एसिंक कॉल कार्यक्षमता को भी रद्द करना चाहता हूं। लेकिन मैं रद्दीकरण टोकनसोर्स टोकन प्राप्त करने में सक्षम नहीं हूं और इस रद्दीकरण टोकन में DownloadStringTaskAsync संलग्न करता हूं। मेरा कोड निम्नलिखित है क्या कोई मुझे बता सकता है कि इसे कैसे पूरा किया जाए।CanStationTaskAsync विधि को रद्द करने के लिए CancellationTokenSource कैसे संलग्न करें और async कॉल को रद्द करें?
private async void DoWork()
{
this.Cursor = Cursors.WaitCursor;
Write("DoWork started.");
cts = new CancellationTokenSource();
WebClient wc = new WebClient();
string result = await wc.DownloadStringTaskAsync(new Uri("http://gyorgybalassy.wordpress.com"));
if (result.Length < 100000)
{
Write("The result is too small, download started from second URL.");
result = await wc.DownloadStringTaskAsync(new Uri("https://www.facebook.com/balassy"));
}
Write("Download completed. Downloaded bytes: " + result.Length.ToString());
Write("DoWork ended.");
this.Cursor = Cursors.Default;
}
private void btnCancel_Click(object sender, EventArgs e)
{
Write("Cancellation started.");
this.cts.Cancel();
Write("Cancellation ended.");
}
जब मेरा रद्द करें बटन cts को कॉल करता है। DownloadStringTaskAsync कॉल रद्द करें रद्द नहीं किया गया है। क्यों रद्द करें बटन Async कॉल को रद्द करने में सक्षम नहीं है?
आप किसी भी तरह से 'CancellationTokeSource' उपयोग नहीं कर रहे हैं, कैसे पता करने के लिए' यह रद्द कर देना चाहिए जब आप इसे नहीं बताया माना WebClient' है कि ? – svick
धन्यवाद आपके उत्तर के लिए svick। लेकिन मैंने टोकन को DownloadStringTaskAsync विधि के पैरामीटर के रूप में पास करने का प्रयास किया लेकिन इस विधि के लिए इसका कोई अधिभार नहीं है जो इसका समर्थन करता है। इसलिए मैं डाउनलोडस्ट्रिंग टास्कएसिंक विधि के साथ रद्दीकरण टोकन का उपयोग कैसे नहीं कर रहा था। क्या आप टीएपी क्षमताओं के साथ सी # में इन सभी नए अपडेट पढ़ने के लिए मुझे कुछ अच्छी किताबें सुझा सकते हैं। –