【发布时间】:2009-12-23 17:20:38
【问题描述】:
我在这里得到“跨线程操作无效”:
if ( vlc.State == VlcPlayerControlState.PLAYING )
{
if ( vlc.InvokeRequired )
{
vlc.Invoke( new MediaPlayerNoParameterDelegate( vlc.Stop ) );
}
else
{
vlc.Stop(); // debugger points here
}
}
调试显示 vlc 不需要调用。但是访问它的线程与创建它的线程不同。
我正在使用 libvlc.net 包装器播放声音,但问题不应该存在。 我怎样才能摆脱这个异常?
我使用的是线程而不是 backgroundworker。
谢谢!
【问题讨论】:
-
试试这个。 Marshall 进入 ui 线程。调用
vlc.stop并获取它的返回值。现在创建一个新的 MediaPlayerNoParameterDelegate 实例
标签: .net invoke vlc multithreading