2016-03-01 95 views
-1

我创建了一个试图将某些字符串*粘贴到当前打开的.vb或.cs文件中的Visual Studio 2013插件(确定,扩展包实际),但是当我得到编辑器实例冻结了一段时间后,实际上粘贴了文本。如果线条相对较少,VS会在几秒后回来,但对于超过20行的编辑器来说,它永远不会回来。Visual Studio在处理TextSelection.Text时挂起

这是我的代码看起来像要点:

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并中断它变成包裹在AppendLine行调用一个StringBuilder)

+0

当你通过代码时,哪一行是挂起的代码是这行'GetService'你看过了文档https://msdn.microsoft.com/en-us/library/envdte.textselection.aspx – MethodMan

+0

否它在代码的最后一行,就像我在例子中说的那样。谢谢。 –

+0

我没有看到任何字符串生成器代码..你为什么不显示所有相关的代码..? – MethodMan

回答