الوظيفة الإضافية Visual Studio: كيف أعرف متى انتهى أحد الحلول

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

سؤال

أنا أكتب وظيفة إضافية VS2008 (باستخدام DTE) التي يجب إخطارها بعد الانتهاء من التحميل الحالي.

لقد حاولت استخدام التعليمات البرمجية التالية:

events = (Events2) applicationObject.Events
events.SolutionEvents.Opened += DoSomeWorkEvent;

لسوء الحظ، يبدو أنه منذ VS2005 يتم طرح الحدث عندما يبدأ الحل في التحميل - وليس عند انتهاءه.

أنتجت البحث عبر الإنترنت القصير التالية خيط يشرح المشكلة واقتراح حلا (تحقق من كل عنصر مشروع لمعرفة ما إذا كان قد انتهيت من التحميل).

هل هذا هو أفضل الحلول المتاحة أم أنه هناك طريقة أفضل لمعرفة متى انتهى حل التحميل؟

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

المحلول

لقد وجدت حل عبء يحل هذه المشكلة - لقد قمت بإنشاء Windows.Forms.timer الذي يعمل على الخيط الرئيسي والتحقق من التحميل إذا انتهى المحلول.

private void TimerTick(object sender, EventArgs e)
{
   try
   {
       var solution = applicationObject.Solution;
       if (solution.IsOpen && string.IsNullOrEmpty(solution.FileName) == false)
       {
           timer.Stop();
           // insert logic here
       }
   }
   catch (Exception exception)
   {
       Console.WriteLine(exception);
   }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top