سؤال

أواجه الكثير من المتاعب مع AppDomains. لدي حاليًا Appdomain يحتوي على عناصر تحكم في الكاميرا ، وأحاول أن أعود من الأحداث التي أثيرت من هذا AppDomain الثانوي (مثل الصورة التي يتم التقاطها) إلى البرنامج الرئيسي. يبدو أن كل شيء يتم إعداده بشكل صحيح (يتم تسجيل الأحداث ، وسيتم تشغيل الوظائف عبر المجال) ولكن عندما أحاول الاستدعاء ، لا يحدث شيء. كل ما يمكنني العثور عليه حول هذا الموضوع ينطوي على استثناءات يتم إثارتها بدلاً من مجرد لا شيء يحدث على الإطلاق.

لا أعرف إلى أي مدى يمكنني شرح ذلك أفضل من هذا ، لذلك صنعت مخططًا (مبسطًا للغاية) ، ويمكنني نشر أي رمز ضروري.

http://a.imageshack.us/img832/8205/cameradiagram.png

نقطة توقف في OnPictureUpdated.Invoke(pic); جزء ، داخل AppDomain الثانوي ، ولكن لا شيء (إما في الداخل CameraContainer أو في التطبيق الرئيسي. أقوم بفحص فارغ عند استدعاء الأحداث ، لم أضع ذلك في الرسم البياني.

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

المحلول

+1 للجهد في السؤال.

أعتقد أن هذا قد يكون فقط لأنك CameraContainer ليس أ MarshalByRefObject. لأنه يعلق على الحدث ، AppDomain تحتوي على CameraManager يحتاج بشكل فعال إلى العودة إلى الابتدائية AppDomain عندما يتم رفع الحدث.

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