操作TextSelection.Text时,Visual Studio会挂起

时间:2016-03-01 18:03:32

标签: c# visual-studio-2013 plugins visual-studio-extensions

我正在创建一个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调用中的行)

1 个答案:

答案 0 :(得分:0)

好的,我没有看到这个问题:https://stackoverflow.com/a/1096737/1605873

原来,我只需要使用selection.Insert(myText);而不是selection.Text = myText; 荒谬地加快