.NET - تجمعات interops تستغرق 15 ثانية للتحميل عند الرجوع إليها في وظيفة

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

  •  07-07-2019
  •  | 
  •  

سؤال

هذا هو تطبيق C# وحدة التحكم. لدي وظيفة تفعل شيئًا كهذا:

static void foo()
{
       Application powerpointApp;
       Presentation presentation = null;

       powerpointApp = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();
}

هذا كل ما يفعله. عندما يطلق عليه ، يوجد تأخير خمسة عشر ثانية قبل أن يتم ضرب الوظيفة. أضفت شيئًا كهذا:

static void MyAssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args)
{
       Console.WriteLine(DateTime.Now.ToString() + " ASSEMBLY LOADED: " + args.LoadedAssembly.FullName);
       Console.WriteLine();
}

يتم إطلاق النار هذا يخبرني أن تجميعات interop الخاصة بي قد تم تحميلها حوالي 10 مللي ثانية قبل أن تصل وظيفة FOO الخاصة بي. مالذي استطيع فعله حيال هذا؟ يحتاج البرنامج إلى استدعاء هذه الوظيفة (وفي النهاية القيام بشيء آخر) مرة واحدة ثم الخروج ، لذا أحتاج إلى تخزين المؤقتة هذه التجميعات أو شيء من هذا القبيل. أفكار؟

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

المحلول

يمكن أن تكون قائمة إلغاء الشهادة - المهلة في هذا 15 ثانية. هل هناك أي شيء في سجل الأحداث؟ هل يمكنك التحقق مما إذا كانت أي اتصالات شبكة تحدث أثناء المهلة؟

قمت بتدوين بعض التفاصيل حول تأخير إلغاء الشهادة منذ فترة. اتبع الرابط ، ولن أقطعه وألصقه هنا.

نصائح أخرى

15 ثانية تبدو وكأنها مهلة بالنسبة لي. هل تقوم بتسجيل تجميعاتك؟ لقد واجهنا مشكلة حيث يريد الإطار التحقق من قائمة إلغاء الشهادة عند التحميل ، ولكنه يفشل بعد 15 ثانية.

HTH

تيم

<runtime>

   <generatePublisherEvidence enabled="false"/>

</runtime>

انظر هنا للحصول على التفاصيل

http://msdn.microsoft.com/en-us/library/bb629393.aspx

"نوصي أن تستخدم الخدمات العنصر لتحسين أداء بدء التشغيل. يمكن أن يساعد استخدام هذا العنصر أيضًا في تجنب التأخيرات التي يمكن أن تسبب مهلة وإلغاء بدء تشغيل الخدمة."

ما عليك سوى التخمين ، ولكن ربما يكون الوقت قد حان لبدء تشغيل PowerPoint بعد تحميل مجموعات interop.

إذا لم يتم استدعاء Method Foo () عند بدء تشغيل التطبيق ولديك بعض المهام الأخرى التي يمكنك القيام بها قبل استدعاءها ، فيمكنك بدء تشغيل مؤشر ترابط منفصل في البداية لتحميل التجميعات.

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