मैं कैसे ठीक करें "सिस्टम.सूत्रण.कार्य । TaskCanceledException: 'एक कार्य रद्द कर दिया गया था.'" अपवाद पर अनुप्रयोग से बाहर निकलें (Winforms)?

0

सवाल

मैं एक WinForms एमपी 3 प्लेयर डेस्कटॉप अनुप्रयोग (.NET Framework 4.7.2) है कि का उपयोग कर रहा है ElementHost होस्ट करने के लिए एक MediaElement नियंत्रण और एक DispatcherTimer प्लेबैक नियंत्रित करने के लिए (इस तरह के रूप में अद्यतन करने के लिए एक स्लाइडर).

सब कुछ ठीक काम करता है, लेकिन जब मैं अनुप्रयोग से बाहर निकलें, मैं "System.Threading.Tasks.TaskCanceledException: 'A task was canceled.'" अपवाद (मैं सूचना केवल जब यह चल रहा है के तहत डिबगर).

यह कुछ भी नहीं है लेकिन एक उपद्रव और लगता है ज्यादातर हानिरहित हैं, लेकिन मैं पसंद नहीं है, अपवाद है कि मैं समझ में नहीं आता. Callstack नहीं है सुपर उपयोगी:

>   mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task task)   Unknown
    mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task)  Unknown
    WindowsBase.dll!System.Windows.Threading.DispatcherOperation.Wait(System.TimeSpan timeout)  Unknown
    WindowsBase.dll!System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherOperation operation, System.Threading.CancellationToken cancellationToken, System.TimeSpan timeout)   Unknown
    WindowsBase.dll!System.Windows.Threading.Dispatcher.Invoke(System.Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, System.TimeSpan timeout) Unknown
    WindowsBase.dll!MS.Internal.WeakEventTable.OnShutDown() Unknown
    WindowsBase.dll!MS.Internal.WeakEventTable.WeakEventTableShutDownListener.OnShutDown(object target, object sender, System.EventArgs e)  Unknown
    WindowsBase.dll!MS.Internal.ShutDownListener.HandleShutDown(object sender, System.EventArgs e)  Unknown

हो रहा है क्योंकि WPF ढेर नहीं मिलता निपटारा ठीक से किसी भी तरह? मैं यह सुनिश्चित मेरे DispatchTimer में बंद कर दिया है MainForm_FormClosing लेकिन शायद वहाँ कुछ और मैं साफ करने की जरूरत है?

नहीं एक महत्वपूर्ण मुद्दा है, ज़ाहिर है, कष्टप्रद.

c# winforms wpf
2021-11-22 00:41:19
2

सबसे अच्छा जवाब

1

इस अपवाद फेंक दिया जाता है जब एक अतुल्यकालिक विधि की अनुमति नहीं है को चलाने के लिए पूरा करने के लिए है कि आदेश में अन्य अतुल्यकालिक तरीकों के साथ एक ही CancellationToken बंद कर सकते हैं प्रसंस्करण इनायत अगर जरूरत है.

आप कर सकते हैं की संभावना की उपेक्षा, यह के रूप में यह लगता है के लिए एक uncaught अपवाद से उन पुस्तकालयों में से एक का उपयोग कर रहे हैं. यदि यह वास्तव में आप परेशान है और आप यह पता नहीं है में अपने codebase, आप सोख सकता अपवाद है, लेकिन यह आम तौर पर अच्छा नहीं माना जाता है अभ्यास.

2021-11-22 00:48:57

वहाँ है एक अच्छा रास्ता खोजने के लिए है जो विधि के कारण यह करने के लिए अपवाद फेंक दिया हो? मैं बेहतर महसूस अगर मैं जानता था कि जो पुस्तकालय यह कारण है. Callstack पर अपवाद फेंक समय बहुत उपयोगी नहीं है, और यह देखते हुए कि यह एप्लिकेशन को शट डाउन है, वहाँ बहुत कुछ कर रहे हैं चल धागे छोड़ दिया है ।
David Airapetyan

आप अपनी लपेट सकता है कोड के साथ पकड़ने के लिए खंड, और डाल एक ब्रेकपाइंट पर यह देखने के लिए यदि आप कर सकते हैं का पता लगाने में अपराधी कॉल हो चुकी है । दुर्भाग्य से, यदि एक अपने पुस्तकालयों में पकड़ा गया है एक अपवाद है और फिर से फेंक दिया एक नया CancellationException, आप नहीं मिलेगा पूरा इतिहास, और अपने सबसे अच्छा शर्त है, तो देखने के लिए यदि आप कर सकते हैं के रूप में गोता लगाने के स्रोत पुस्तकालय अगर यह उपलब्ध है.
Chris
0

यह लग रहा है की तरह एक मुद्दे के साथ .NET Framework 4.7.2. समस्या और एक समाधान कर रहे हैं यहाँ वर्णित: TaskCanceledException में ShutDownListener.

Tl'dr है कि निम्न जोड़ने के लिए अपने App है । config बनाया अपवाद दूर जाना:

  <runtime>
    <AppContextSwitchOverrides value="Switch.MS.Internal.DoNotInvokeInWeakEventTableShutdownListener=true"/>
  </runtime>
2021-11-22 03:44:26

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में