Подтвердить что ты не робот

Согласование скобок и подсветка ссылок внезапно прекращают работу (VS2013)

Согласование скобок Visual Studio 2013, выделение ссылок, автоматическое определение переменной /, изменение имен методов (вместо этого нужно использовать Refactor) и т.д.... перестают работать и снова работают только после перезапуска VS. Я пишу код на С#.

Я единственный страдающий/затронутый этой проблемой?

Очень раздражающая проблема VS2013!! Это происходит только в крупных проектах.

Обновление 1: я понял, что это происходит сразу после открытия любого WinForm в VS Designer. Когда я вернусь к редактированию кода, согласование фигур и прочее исчезнут, и мне нужно перезапустить VS!

Обновление 2: обновление версии Visual Studio 2013 4 и все еще... НЕ исправить!! Здравствуйте, Microsoft?

Обновление 3: Поскольку у моего решения есть несколько голосов, я собираюсь суммировать его здесь. В моем случае проблема была Thread.Sleep была вызвана VS Designer. Это была ошибка кода, но в любом случае Designer не должен запускать команды Thread.Sleep, блокирующие весь VS.

4b9b3361

Ответ 1

FINALY Я нашел ошибку!

Ну, это швы, вы можете взломать VS IDE и переспать с ним (LOL), побочные эффекты - это те проблемы, с которыми я столкнулся, например, скобки, которые больше не работают.

Как воспроизвести его:

  • Создайте проект WinForm
  • Создать элемент управления
  • Добавьте следующий код в элемент управления
  • Перестроить
  • Открыть форму1 в дизайнере

Вы заметите 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.

Ответ 2

Пока не придет исправление, попробуйте отключить кодовый объектив.
 tools->options->text editor -> all languages ->code lens

Или просто уничтожьте задачу удаленного доступа ALM. если это очень высокий процессор.

Ответ 3

Это ошибка в Visual Studio, и, к сожалению, Microsoft решила не исправлять до Visual Studio 2015 в соответствии с этим билетом в Connect:

У нас есть планы сделать более глубокие улучшения, но это произойдет не до следующей крупной версии Visual Studio, потому что мы будем использовать преимущества платформы .NET Compiler. В то время как я закрываю эту проблему, помните, что у нас есть работа, запланированная для следующей версии Visual Studio, чтобы исправить ее.

Тем не менее, я смог смягчить эту проблему настолько, что CodeLens снова можно использовать (лично я использую # 3 и # 4):

  • Перейдите в Сервис Параметры... Текстовый редактор > Все языки CodeLens и убедитесь, что отмечены только те параметры, которые вам интересны. Чем меньше проверено, тем быстрее будут CodeLens.
  • Измените плагин Source Control на Нет. Это полностью решает проблему для меня, но это означает потерю информации об авторе/изменении истории, предоставленной CodeLens.
  • После загрузки решения откройте Диспетчер задач в качестве администратора и щелкните правой кнопкой мыши по процессам Microsoft.Alm.Shared.Remoting.RemoteContainer.dll (их может быть несколько) и Установить приоритет. Ниже нормального или Низкий. (Вам придется делать это каждый раз, когда вы открываете Visual Studio)
  • Если ваш процессор имеет несколько ядер, после загрузки решения откройте Диспетчер задач в качестве администратора и щелкните правой кнопкой мыши по процессам Microsoft.Alm.Shared.Remoting.RemoteContainer.dll (их может быть несколько) и нажмите Установите сродство и снимите отметку с одного или нескольких ядер. (Вам придется делать это каждый раз, когда вы открываете Visual Studio)

Я обнаружил, что только # 2 может полностью решить проблему, но # 3 должно быть достаточно, чтобы остановить замораживание, вызванное процессом, насыщающим доступные ресурсы, хотя этот процесс по-прежнему будет приводить к высокому использованию ЦП до тех пор, пока он не завершит обработку. Ваш пробег может отличаться от # 4.

Ответ 4

Я столкнулся с этим сообщением, потому что меня тоже мучила эта проблема, и похоже, что это может быть связано с эта ошибка, о которой сообщалось Microsoft Connect.

К сожалению, похоже, что это не очень удобно, и Microsoft заявила, что обратится к ней в будущей версии Visual Studio (независимо от того, означает ли это новую версию или обновление, я не знаю).

Пользователь Chris Bjugstad опубликовал предложение на странице отчета об ошибке, которая может или не поможет вам:

Я запустил sysinternals procmon и отфильтрован для этого конкретного процесса. В моем случае процесс (Microsoft.Alm.Shared.Remoting.RemoteContainer.dll) - это чтение/запись dll, на которые ссылается один из моих проектов, в папку "теневая копия".

%Temp%\ALM\ShadowCopies\<some_guid>

В приведенной выше папке было 2600 + пустых папок. Я удалил папку, и сначала VS быстрее.

Это, вероятно, только временно устранит вашу проблему (если вообще), пока она не начнет создавать резервные копии этой папки.

Удачи!

Ответ 5

Я тоже заметил эту проблему. Я также заметил, что я не был зарегистрирован в моем профиле Visual Studio, и как только я решил проблему онлайн-авторизации Visual Studio, процессорный бог ушел.