我在这里得到“跨线程操作无效”:
if ( vlc.State == VlcPlayerControlState.PLAYING )
{
if ( vlc.InvokeRequired )
{
vlc.Invoke( new MediaPlayerNoParameterDelegate( vlc.Stop ) );
}
else
{
vlc.Stop(); // debugger points here
}
}
调试显示vlc不需要调用。但访问它的线程与创建它的线程不同。
我正在使用libvlc.net包装器播放声音,但问题不应该存在。 我怎样摆脱这个例外?
我使用的是线程而非背景工作者。
谢谢!
答案 0 :(得分:1)
听起来这是libvlc.net包装器中的一个错误。
我的建议是永远调用vlc.Invoke(...)。当真正不需要调用时,你会遭受(小)性能损失,但是如果你是从一个单独的线程执行此操作,那么无论如何都会一直需要它。