मैं WinRT में एक कीबोर्ड ईवेंट से बुलाया गया एक विधि (सबमिट में) (उदाहरण में) में प्रसंस्करण में देरी करने में देरी करने की कोशिश कर रहा हूं) जब तक कोई और घटना नहीं होती है समय अवधि (इस मामले में 500ms)।कार्य को कॉल करते समय टास्क कैंसेल अपवाद। कुंजीपटल ईवेंट में रद्दीकरण टोकन के साथ डेले
मुझे केवल सबमिट करने के लिए सबमिट करें() को चलाने के लिए जब मुझे लगता है कि उपयोगकर्ता टाइपिंग समाप्त कर चुका है।
नीचे दिए गए कोड का उपयोग करके, मैं एक सिस्टम प्राप्त कर रहा हूं। Treading.Tasks.TaskCanceledException जब कार्य। डेले (500, रद्दीकरण टोकन। टोकन); कहा जाता है। मैं यहाँ क्या गलत कर रहा हूँ?
CancellationTokenSource cancellationToken = new CancellationTokenSource();
private async void SearchBox_QueryChanged(SearchBox sender, SearchBoxQueryChangedEventArgs args)
{
cancellationToken.Cancel();
cancellationToken = new CancellationTokenSource();
await Task.Delay(500, cancellationToken.Token);
if (!cancellationToken.IsCancellationRequested)
{
await ViewModel.SubmitQuery();
}
}
आप कैसे आरएक्स समय आधारित तर्क – Anupam
@Anupam के लिए बेहतर विकल्प है पर कुछ संसाधनों के लिए लिंक उपलब्ध कराएं: यह मेरे अपने अनुभव से है। –