我正在创建一个Visual Studio 2013插件(确实,实际上是扩展包),它试图将某些字符串*粘贴到当前打开的.vb或.cs文件中,但是当我到达实际粘贴的时候文本编辑器实例冻结了一段时间。如果有相对较少的线路,VS会在几秒钟后回来,但是对于20多行,编辑器就再也没有回来了。
这是我的代码的主旨:
String myText = "foo";
DTE dte = this.GetService(typeof(DTE)) as DTE;
EnvDTE.TextSelection selection = (dte.ActiveDocument.Selection as EnvDTE.TextSelection);
selection.Text = "";
//Here myText ends up having some content written into it
selection.Text = myText; //VS hangs after this point
我可以做些什么来解决(或至少调试)这个问题的线索?我已经尝试了VS的Profiler,但我得到的是98%的时间浪费在“msenv.dll”上,我看不出里面发生了什么......
*(从剪贴板获取SQL并将其分解为包含在对StringBuilder的AppendLine调用中的行)
答案 0 :(得分:0)
好的,我没有看到这个问题:https://stackoverflow.com/a/1096737/1605873
原来,我只需要使用selection.Insert(myText);
而不是selection.Text = myText;
荒谬地加快。