الحصول على "عملية التبادل غير صالحة" حتى عند استخدام طريقة الاستدعاء
-
21-09-2019 - |
سؤال
أحصل على "عملية التقاطع غير صالحة" هنا:
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 (...). ستعاني من أداء (صغير) عندما يكون الاستدعاء غير مطلوب حقًا ، ولكن إذا كنت تفعل ذلك من موضوع منفصل ، فسيكون ذلك مطلوبًا دائمًا على أي حال.
لا تنتمي إلى StackOverflow