سؤال

أحصل على استثناء "يجب أن يكون موضوع الاتصال STA ، لأن العديد من مكونات واجهة المستخدم تتطلب ذلك". وهو أمر غبي لأن المنشئ الذي يعطي الاستثناء يتم استدعاؤه من داخل خيط STA!

أنا حقا في نهاية حبل بلدي. هل مر أحدكم بهذه المشكلة؟

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

المحلول

كان الجواب أن هذا كان مزعجًا إلى حد ما ، لكنه نجح.

لقد اكتشفت على نميتي الهائلة أن حالة موضوعي مباشرة داخل وظيفتي الرئيسية كانت MTA على الرغم من استخدامي STAThread ينسب. على ما يبدو ، قرر مؤشر ترابط التصحيح الذي يسمى نقطة الدخول الخاصة بي تجاوز السمة وجعله مؤشر ترابط MTA. كان الحل هو إنشاء مؤشر ترابط آخر وتشغيل طلبي من داخل ذلك. فعلت ذلك وأنه يعمل. أنا أكره هذا ، لكن لا يبدو أن هناك أي شخص آخر لديه هذه المشكلة.

قد تكون الطريقة غير التقليدية التي قمت بإعداد مشروعي. أي أن يتم تشغيله من داخل تطبيق MFC (لا يمكن مساعدته) يستهدف .NET 3.5 على الرغم من أنه في Visual Studio 2010.

على أي حال ، فهو يعمل.

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