2

我在这里得到“跨线程操作无效”:

if ( vlc.State == VlcPlayerControlState.PLAYING )
        {
            if ( vlc.InvokeRequired )
            {
                vlc.Invoke( new MediaPlayerNoParameterDelegate( vlc.Stop ) );
            }
            else
            {
                vlc.Stop(); // debugger points here
            }
        }

调试告诉我 vlc 不需要调用。但是访问它的线程与创建它的线程不同。

我正在使用 libvlc.net 包装器播放声音,但问题不应该存在。我怎样才能摆脱这个异常?

我使用的是线程而不是后台工作者。

谢谢!

4

1 回答 1

1

听起来这是 libvlc.net 包装器中的一个错误。

我的建议是总是调用 vlc.Invoke(...)。当确实不需要调用时,您将遭受(小)性能损失,但如果您从单独的线程执行此操作,则无论如何总是需要它。

于 2009-12-23T17:28:16.073 回答