MediaElement.CurrentState retrieves System.Exception
本文关键字:Exception System retrieves CurrentState MediaElement | 更新日期: 2023-09-27 18:12:43
我需要多次从MediaElement
中获得CurrentState
。我创建了一个简单的函数,如下所示:
private string getCurrentState(MediaElement m)
{
return m.CurrentState.ToString();
}
但是每次调用这个函数时,我得到这个:
类型为'System '的异常。在MyProject中发生异常,但未在用户代码中处理。
附加信息:应用程序调用了为不同线程编组的接口。
(Exception gfrom HRESULT: 0x8001010E (rcpe_wrong_thread))
我一直在调查这个问题,正如我所理解的,它通常出现在试图在MediaOpened
事件被触发之前检索CurrentState
时。实际上,这并不适合我的情况,因为这个函数是在那之后调用的。然而,我调用CurrentState
属性,我得到了同样的异常,这一切最奇怪的事情是,有时工作,有时不,所以我绝对不知道什么是错误的代码:S
有谁知道怎么修理它吗?
您正在尝试从非ui线程获取状态。您应该重新设计代码,以避免与来自后台线程(任务)的MediaElement交互。或者你可以将getCurrentState方法调用包装到dispatcher
CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
<lambda for your code which should run on the UI thread>);