支撑匹配和参考突出突然停止工作(VS2013)

时间:2013-12-27 17:45:56

标签: c# visual-studio-2013 intellisense

Visual Studio 2013大括号匹配,引用突出显示,自动检测变量/,方法名称更改(需要使用Refactor)等...正在停止工作并且仅在VS重新启动后再次工作。我正在用C#编写代码。

我是唯一受此问题影响的人吗?

非常讨厌VS2013的问题!!它接缝只发生在大型项目中。

更新1:我意识到它是在我在VS Designer中打开任何WinForm之后发生的。当我回到代码编辑时,大括号匹配和东西都消失了,我需要重启VS!

更新2:Visual Studio 2013更新 4 仍然......没有修复!你好微软?

更新3:由于我的解决方案投票很少,我将在此总结一下。就我而言,问题是一个Thread.Sleep被VS Designer调用。这是一个代码错误,但无论如何,Designer不应该运行Thread.Sleep命令来冻结整个VS.

5 个答案:

答案 0 :(得分:19)

在修复程序到货之前,请尝试禁用代码镜头  tools->options->text editor -> all languages ->code lens

或者只是杀死ALM共享远程处理任务。如果是非常高的CPU。

答案 1 :(得分:18)

这是Visual Studio中的一个错误,遗憾的是,根据this ticket on Connect,Microsoft决定不修复Visual Studio 2015:

  

我们计划进行更深层次的改进,但直到Visual Studio的下一个主要版本才会发生这些改进,因为我们将利用.NET编译器平台的存在。在我关闭此问题时,请注意我们已计​​划在Visual Studio的下一个版本中进行更正。

即便如此,我还是能够缓解这个问题,使CodeLens再次可用(个人而言,我使用#3 #4 ):

  1. 转到工具 > 选项... > 文字编辑器 > 所有语言 > CodeLens ,并确保仅检查您关注的统计信息。检查的内容越少,CodeLens就越快。
  2. 将您的源代码管理插件更改为。这完全解决了我的问题,但这意味着丢失CodeLens提供的作者/更改历史信息。
  3. 加载解决方案后,以管理员身份打开任务管理器,右键单击Microsoft.Alm.Shared.Remoting.RemoteContainer.dll进程(可能有多个进程)和设置优先级低于正常(每次打开Visual Studio时都必须这样做)
  4. 如果您的CPU有多个内核,请在加载解决方案后,以管理员身份打开任务管理器,然后右键单击Microsoft.Alm.Shared.Remoting.RemoteContainer.dll进程(可能有多个)并单击设置关联并取消选中一个或多个核心。 (每次打开Visual Studio时都必须这样做)
  5. 我发现只有#2 可以完全解决问题,但是#3 应该足以阻止由于可用资源饱和而造成的冻结,尽管在完成处理之前,该进程仍将导致高CPU利用率。您的里程可能因#4 而异。

答案 2 :(得分:8)

我发现这篇文章是因为我一直受到这个问题的困扰,听起来它可能与Microsoft Connect上报告的this bug有关。

不幸的是,它似乎没有良好的解决方法,微软表示他们将在未来的Visual Studio版本中解决它(无论是新版本还是更新版本) ,我不知道。)

用户Chris Bjugstad在错误报告页面上发布了一条可能对您有所帮助的建议:

  

我运行了sysinternals procmon并对此特定进程进行了过滤。在我的例子中,进程(Microsoft.Alm.Shared.Remoting.RemoteContainer.dll)正在读取/写入我的一个项目引用的dll到“shadow copy”文件夹。

     

%Temp%\ALM\ShadowCopies\<some_guid>

     

上面的文件夹有2600+个空文件夹。我删除了文件夹,VS起初速度更快。

这可能只会暂时解决您的问题(如果有的话),直到它开始构建该文件夹为止。

祝你好运!

答案 3 :(得分:5)

确定我发现了错误!!

好吧,它接缝你可以破解VS IDE并让它进入睡眠状态(LOL),副作用是我遇到的问题,比如支架匹配不再起作用了。

如何重现它:

  1. 创建WinForm项目
  2. 创建控件
  3. 在控件
  4. 中添加以下代码
  5. 重建
  6. 在Designer中打开Form1
  7. 你会注意到Thread.Sleep在行动!现在,回到代码编辑,大括号匹配和东西都没了。解决问题的唯一方法是重新启动VS。

    重现错误的代码:

    public UserControl1()
    {
        InitializeComponent();
        Application.Idle += Application_Idle;
    }
    
    void Application_Idle(object sender, EventArgs e)
    {
        Thread.Sleep(200); //Yeah VS IDE will sleep for 200 ms ! LOL!
    }
    

    我认为VS Designer 应该忽略 Thread.Sleep命令,不应该吗?

    现在我只是通过调用:

    来检查代码是否在VS Designer中运行
        // Return if is inside VS Designer !
        if (System.Reflection.Assembly.GetEntryAssembly() == null)
            return;
    

    我还尝试在Form1中添加此代码,它会阻止VS忽略Sleep。

答案 4 :(得分:3)

我也注意到了这个问题。我还注意到我没有登录到我的Visual Studio配置文件,一旦我解决了Visual Studio在线凭证问题,CPU猪就消失了。