Visual Studio 在操作 TextSelection.Text 时挂起

Visual Studio hangs when manipulating TextSelection.Text

我正在创建一个 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 的探查器,但我得到的只是 98% 的时间浪费在 "msenv.dll" 上,我看不到里面发生了什么..

*(从剪贴板中取出 SQL 并将其分解为包含在对 StringBuilder 的 AppendLine 调用中的行)

好的,我还没有看到这个问题:

事实证明,我只需要使用 selection.Insert(myText); 而不是 selection.Text = myText;快得离谱