كيف يمكنني تحديث رسائل الحالة في فايرفوكس من أي موضوع؟
سؤال
واجهت مشكلة في تحديث رسالة الحالة على Firefox من رمز البرنامج الإضافي.
كما تقول الوثائق الدعوة NPN_Status
يعمل فقط عند استدعائه من الموضوع الرئيسي.متطلباتي هي تحديث الحالة من أي موضوع ضمن عملية Firefox.
سيكون موضع تقدير أي مساعدة!
المحلول
وأنت لا يمكن تحديثه من أي موضوع لأن ذلك من شأنه أن ينتهك بعض القواعد threadsafety. سيكون لديك لوكيل التحديث إلى موضوع الرئيسي.
نصائح أخرى
كما قال sdwilsh, عليك الاتصال بـ NPN_*
- وظائف فقط من الموضوع الرئيسي. NPN_PluginThreadAsyncCall
تم تقديمه فقط في Gecko 1.9 وهو غير مدعوم في جميع المتصفحات الحالية.
تعتمد الحلول على النظام الأساسي:
- في فئة Windows الفرعية، النافذة التي يتلقاها المكون الإضافي الخاص بك، قم بنشر/إرسال الرسائل إليها واستدعاء المكالمة من عملية نافذة المعالجة
- على Mac مع Cocoa يمكنك استخدامه على سبيل المثال.
performSelectorOnMainThread
- على نظام Mac الذي يعمل بنظام Carbon، يمكنك استخدام استدعاءات الحدث الفارغ
- ...إلخ.
لا تنتمي إلى StackOverflow