作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 VS2008 加载项(使用 DTE),需要在当前解决方案完成加载后得到通知。
我试过使用下面的代码:
events = (Events2) applicationObject.Events
events.SolutionEvents.Opened += DoSomeWorkEvent;
不幸的是,从 VS2005 开始,事件似乎在解决方案开始加载时抛出 - 而不是在它完成时抛出。
简短的互联网搜索产生了 following thread解释问题并提出解决方案(检查每个项目项以查看它是否已完成加载)。
这是可用的最佳解决方案还是有更好的方法来了解解决方案何时完成加载?
最佳答案
我找到了解决此问题的解决方法 - 我创建了一个在主线程上运行的 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);
}
}
关于c# - Visual Studio 加载项 : How do I know when a solution has finished loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1496809/
我是一名优秀的程序员,十分优秀!