2017-05-22 26 views
5

अनदेखा करता है मैं RestSharp.RestClient (105.2.4-rc4-24214-01) का उपयोग कर एक .NET कोर एप्लिकेशन विकसित कर रहा हूं। मैं सेटRestSharp.RestClient टाइमआउट

RestClient.Timeout=1 

या

RestClient.Timeout=10000 

और फिर फोन अपने परीक्षण एपीआई

var tcs = new TaskCompletionSource<IRestResponse>(); 
RestClient.ExecuteAsync(request, response => { tcs.SetResult(response); }) 
return tcs.Task.Result; 

लेकिन यह अभी भी डिफ़ॉल्ट मान 100000 का उपयोग करें और उत्पन्न "एक काम को रद्द कर दिया गया था।" केवल 100000 एमएस के बाद अपवाद।

मैं इस मूल्य को कैसे बदल सकता हूं?

+0

क्या आप विशिष्ट RestClient उदाहरण का टाइमआउट सेट कर रहे हैं जिसका उपयोग आप अनुरोध भेजने के लिए करते हैं? – 108

+0

हाँ, मुझे यकीन है कि मैं –

+0

यहां एक ही समस्या है, मैं टाइमआउट और रीडवाइटटाइमआउट सेट कर रहा हूं और यह काम नहीं करता है। – Darxis

उत्तर

0

आप रद्दीकरण टोकनसोर्स का उपयोग कर सकते हैं और प्रतिक्रिया के लिए हैंडल को निरस्त करने के लिए अपने टोकन का उपयोग कर सकते हैं। एक 10 सेकंड का समय समाप्त

System.Threading.CancellationTokenSource cts = new System.Threading.CancellationTokenSource(); 
cts.CancelAfter (TimeSpan.FromMilliseconds(10000)); 
var tcs = new TaskCompletionSource<IRestResponse>(); 
RestRequestAsyncHandle handle = RestClient.ExecuteAsync(request, response => { tcs.SetResult(response); }) 
using (cts.Token.Register(() => handle.Abort())) 
     { 
     return (RestResponse)(await tcs.Task); 
     } 

आशा है कि यह मदद करता है डाल करने के लिए नीचे दिए गए कोड का प्रयास करें !!