أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

PRB: يمكن أتمتة COM عبر عملية يتوقف تطبيق عميل على Win95/98

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

اضغط هنا لرابط المقالة باللغة الانجليزية216400
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
عند أتمتة ملقم COM مهلة عملية من تطبيق عميل, إذا كان رمز العميل يدخل حلقة مشدود أو يجعل شاملة لطلبات الحصول على الواجهات الجديدة قد إنهاء تطبيق العميل أثناء استدعاء التنفيذ التلقائي مطالبة المستخدم إنهاء العملية بشكل غير طبيعي. بمجرد معلق, يفشل أي طلب COM مشتملاً على واجهة. مطلوب إعادة تشغيل لمسح المشكلة.

وتحدث هذه المشكلة فقط على أنظمة Windows 95 و Windows 98.
السبب
عندما يتم تنظيم واجهة عبر حدود العملية, يتم إنشاء عدد كائنات النظام لمعالجة اتصال بين العمليات العميل والملقم. يتضمن هذا الوكيل/كعب ، مع OID و OXID مطلوبة من قبل COM لتعريف واجهة يتم تنظيم. عند تحرير الواجهة قبل عملية العميل يتم إتلاف هذه الكائنات أثناء المهملة.

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

السبب الأكثر شيوعًا لهذه المشكلة هو أصبحت حلقة مشدود رمز العميل أو يقوم بتنفيذ فترة مكثف من التنفيذ التلقائي مشتملاً على تسلسل هرمي كائن متداخل حيث التي يتم إجراؤها الاستدعاءات المتتالية إلى الحصول على إصدار العديد من الكائنات مهلة العملية في فترة قصيرة من الوقت. على سبيل المثال، يبين نموذج التعليمات البرمجية التالي التسلسل هرمي كائن متداخل التي تتطلب واجهات الثلاثة أن يتم تنظيم كل مرة يتم استدعاء أسلوب PrintOut. بسبب تشغيل التعليمات البرمجية في حلقة مشدود ، هو العدد الإجمالي من الواجهات يتم تنظيم 30:
   For i = 1 To 10      oExcel.ActiveWorkbook.Sheets(i).UsedRange.PrintOut   Next i				
لـ Windows 95 و Windows 98 هو العدد الإجمالي من الواجهات التي يمكن تنظيم دفعة 65,536 تقريباً.
الحل
بحاجة المطورين لتقليل عدد مراجع الكائنات أنها طلب أثناء حلقات مشدود أو فترات كثيف التنفيذ التلقائي. إذا واجهة مطلوبة أكثر من مرة واحدة ، فإنه يجب أن يكون المحتوى إلى كما المستخدمة بشكل متكرر بدلاً من إصدارها و reacquired عدة مرات بالتتابع.

على سبيل المثال, ينجز نفس المهمة هذا الإصدار المُعدّل من نموذج أعلاه ولكن فقط يتطلب واجهات اثنين يمكن تنظيم كل لاستدعاء PrintOut (تصغير 30 بالمائة من التعليمات البرمجية أعلاه):
   Set oBook = oExcel.ActiveWorkbook   For i = 1 To 10      oBook.Sheets(i).UsedRange.PrintOut   Next i				
قد يكون الحل المحتملة آخر لنقل بعض التنفيذ التلقائي التعليمات البرمجية قيد التشغيل إلى الملقم, إذا كان الخادم يسمح للبرمجة قيد التشغيل. على سبيل المثال, لدمج منتجات Microsoft Office VBA البرمجة النصية لـ التنفيذ التلقائي داخلي. نقل التعليمات البرمجية حلقة في الوحدة نمطية VBA, التي قد تجنب تنظيم عدة واجهات كما بدلاً من استدعاء ماكرو يسمح الملقم تنفيذ كافة الأعمال.
مراجع
للحصول على مزيد من المعلومات، الرجاء مراجعة المقالة التالية في "قاعدة المعارف لـ Microsoft:
219905HOWTO: إضافة بشكل حيوي ثم تشغيل ماكرو VBA من Visual Basic

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 216400 - آخر مراجعة: 01/11/2015 02:28:17 - المراجعة: 4.4

Microsoft Windows 95, Microsoft Windows 98 Standard Edition, Microsoft Windows Millennium Edition

  • kbnosurvey kbarchive kbmt kbautomation kboleapp kbprb KB216400 KbMtar
تعليقات