I have an add-in to Visual Studio for printing the source code in color. A user gave me a CRM project to test the add-in. The project contains many web.config files. The Add-in opens the project Item and then Actives the code window as follows to take RTF copy of the code in the window:
Stopwatch.Start()
window = projectItem.Open(Constants.vsViewKindCode)
ts = Stopwatch.Elapsed
elapsedTime = String.Format("{4}; ProjectItem.Open(); {0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10, projectItem.Name)
Diagnostics.Debug.WriteLine(elapsedTime)
Stopwatch.Start()
window.Activate()
ts = Stopwatch.Elapsed
elapsedTime = String.Format("{4}; Window.Active(); {0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10, projectItem.Name)
Diagnostics.Debug.WriteLine(elapsedTime)The trace below shows that open takens no time at all but the .Activatetake 10 seconds: This behavior is only peculiar to some .config files!
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.08 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.08 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.08 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.06 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.09 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.09 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.08 |
| web.config | ProjectItem.Open() | 00:00:00.01 |
| web.config | Window.Active() | 00:00:00.07 |
| web.config | ProjectItem.Open() | 00:00:00.01 |
| web.config | Window.Active() | 00:00:00.07 |
| Web.config | ProjectItem.Open() | 00:00:00.01 |
| Web.config | Window.Active() | 00:00:10.05 |
Why is that and how can I avoid the delay?
Regards,
Joginder Nahil
www.starprinttools.com