الحصول على "عملية التبادل غير صالحة" حتى عند استخدام طريقة الاستدعاء

StackOverflow https://stackoverflow.com/questions/1954140

سؤال

أحصل على "عملية التقاطع غير صالحة" هنا:

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

يوضح لي تصحيح الأخطاء أن VLC لا تتطلب التذرع. لكن الخيط الذي يتم الوصول إليه يختلف عن الخيط الذي تم إنشاؤه عليه.

أنا أستخدم wrapper libvlc.net لتشغيل الصوت ، ولكن لا ينبغي أن تكون المشكلة موجودة. كيف يمكنني التخلص من هذا الاستثناء؟

أنا أستخدم الخيوط وليس عمال الخلفية.

شكرًا لك!

هل كانت مفيدة؟

المحلول

يبدو أن هذا هو خطأ في ملفات libvlc.net.

سيكون اقتراحي هو الاتصال دائمًا بـ VLC.Invoke (...). ستعاني من أداء (صغير) عندما يكون الاستدعاء غير مطلوب حقًا ، ولكن إذا كنت تفعل ذلك من موضوع منفصل ، فسيكون ذلك مطلوبًا دائمًا على أي حال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top