كيف يمكنني تحديث رسائل الحالة في فايرفوكس من أي موضوع؟

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

سؤال

واجهت مشكلة في تحديث رسالة الحالة على Firefox من رمز البرنامج الإضافي.

كما تقول الوثائق الدعوة NPN_Status يعمل فقط عند استدعائه من الموضوع الرئيسي.متطلباتي هي تحديث الحالة من أي موضوع ضمن عملية Firefox.

سيكون موضع تقدير أي مساعدة!

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

المحلول

وأنت لا يمكن تحديثه من أي موضوع لأن ذلك من شأنه أن ينتهك بعض القواعد threadsafety. سيكون لديك لوكيل التحديث إلى موضوع الرئيسي.

نصائح أخرى

كما قال sdwilsh, عليك الاتصال بـ NPN_*- وظائف فقط من الموضوع الرئيسي. NPN_PluginThreadAsyncCall تم تقديمه فقط في Gecko 1.9 وهو غير مدعوم في جميع المتصفحات الحالية.

تعتمد الحلول على النظام الأساسي:

  • في فئة Windows الفرعية، النافذة التي يتلقاها المكون الإضافي الخاص بك، قم بنشر/إرسال الرسائل إليها واستدعاء المكالمة من عملية نافذة المعالجة
  • على Mac مع Cocoa يمكنك استخدامه على سبيل المثال. performSelectorOnMainThread
  • على نظام Mac الذي يعمل بنظام Carbon، يمكنك استخدام استدعاءات الحدث الفارغ
  • ...إلخ.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top