الوظيفة الإضافية Visual Studio: كيف أعرف متى انتهى أحد الحلول
-
19-09-2019 - |
سؤال
أنا أكتب وظيفة إضافية 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);
}
}
لا تنتمي إلى StackOverflow