У меня есть настольное приложение для MP3-плеера WinForms (.NET Framework 4.7.2), которое использует ElementHost для размещения элемента управления MediaElement и имеет диспетчер времени для управления воспроизведением (например, обновление слайдера).
Все работает нормально, но когда я выхожу из приложения, я получаю "System.Threading.Tasks.TaskCanceledException: 'A task was canceled.'"
исключение (я замечаю это только при запуске под отладчиком).
Это не что иное, как досадная помеха, и кажется в основном безвредным, но мне не нравятся исключения, которых я не понимаю. Стек вызовов не очень полезен:
> 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 каким-то образом не утилизируется должным образом? Я гарантирую, что мой диспетчер времени остановлен в MainForm_FormClosing, но, возможно, есть что-то еще, что мне нужно очистить?
Не критическая проблема, конечно, по раздражению.