La coincidencia de llaves y el resaltado de referencias dejan de funcionar repentinamente (VS2013)


Coincidencia de llaves de Visual Studio 2013, resaltado de referencias, detección automática de variables/,cambios de nombre de métodos (es necesario usar Refactor en su lugar), etc... se detienen para trabajar y solo funcionan de nuevo después de un reinicio VS. Estoy escribiendo código en C#.

¿Soy el único que sufre/se ve afectado por este problema?

Muy muy molesto VS2013 problema!! Parece que solo sucede en grandes proyectos.

Actualización 1: Me he dado cuenta de que sucede justo después de abrir cualquier WinForm en VS Designer. Cuando llegue volver a la edición de código, el juego de llaves y cosas se ha ido y necesito reiniciar VS!

Actualización 2: Actualización de Visual Studio 20134 y aún así... ¡NO hay solución!! Hola Microsoft?

Actualización 3: Dado que mi solución tiene pocos votos, voy a resumirla aquí. En mi caso, el problema era un hilo.El sueño ha sido llamado por VS Designer. Fue un error de código, pero de todos modos, Designer no debe ejecutar Thread.Órdenes de dormir congelando todo VS.

Author: Pedro77, 2013-12-27

5 answers

Hasta que llegue la solución, intente deshabilitar code lens.
tools->options->text editor -> all languages ->code lens

O simplemente mata la tarea de comunicación remota compartida de ALM. si es CPU muy alta.

 19
Author: phil soady,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-10 22:51:47

Este es un error en Visual Studio, y lamentablemente uno que Microsoft ha decidido no corregir hasta Visual Studio 2015 de acuerdo con este ticket en Connect :

Tenemos planes para hacer mejoras más profundas, pero eso no sucederá hasta la próxima versión importante de Visual Studio porque estaremos aprovechando la presencia de la Plataforma de Compiladores.NET. Mientras cierro este problema, tenga en cuenta que tenemos trabajo planeado para la próxima versión de Visual Studio para corregir se.

Aún así, pude mitigar este problema lo suficiente como para que CodeLens sea utilizable nuevamente (personalmente, uso #3 y #4):

  1. Ir a Herramientas > Opciones... > Editor de Texto > Todos los Idiomas > CodeLens y asegúrese de que sólo las estadísticas que te interesan están marcadas. Cuantas menos cosas se comprueben, más rápido será el CodeLens.
  2. Cambie su Fuente Complemento de control a Ninguno. Esto resuelve completamente el problema para mí, pero significa perder la información del autor/historial de cambios proporcionada por CodeLens.
  3. Después de cargar una solución, abra Administrador de tareas como administrador y haga clic con el botón derecho en los procesos Microsoft.Alm.Shared.Remoting.RemoteContainer.dll (puede haber más de uno) y Establezca la prioridad a Por debajo de lo normal o Bajo. (Tendrá que hacer esto cada vez que abra Visual Studio)
  4. Si su CPU tiene múltiples núcleos, después de cargar una solución, abra Administrador de tareas como administrador y haga clic con el botón derecho en los procesos Microsoft.Alm.Shared.Remoting.RemoteContainer.dll (puede haber más de uno) y haga clic en Establecer afinidad y desmarque uno o más núcleos. (Tendrá que hacer esto cada vez que abra Visual Studio)

He encontrado que solo #2 puede resolver el problema por completo, pero #3 debe ser suficiente para detener la congelación causada por el proceso de saturar los recursos disponibles, aunque el proceso todavía causará una alta utilización de la CPU hasta que termine el procesamiento. Su kilometraje puede variar con #4.

 18
Author: David Schwartz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-10 02:06:55

Me encontré con este post porque he estado plagado de este problema también, y parece que podría estar relacionado con este error reportado en Microsoft Connect.

Desafortunadamente, no parece haber una buena solución, y Microsoft dijo que lo abordarán en una versión futura de Visual Studio (ya sea que eso signifique una nueva versión o una actualización, no lo sé).

El usuario Chris Byugstad publicó una sugerencia en la página del informe de error que puede o no ayuda:

Ejecuté sysinternals procmon y filtré para este proceso específico. En mi caso el proceso (Microsoft.Alm.Compartir.Remoto.Contenedor remoto.dll) es leer / escribir archivos DLL referenciados por uno de mis proyectos a una carpeta "shadow copy".

%Temp%\ALM\ShadowCopies\<some_guid>

La carpeta anterior tenía más de 2600 carpetas vacías. Eliminé la carpeta y VS fue más rápido al principio.

Esto probablemente solo solucionará temporalmente su problema (si es que lo hace), hasta que comience a construir eso copia de seguridad de la carpeta.

¡Buena suerte!

 8
Author: Paccc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-11 19:36:59

FINALY Encontré el error !!

Bueno, se costuras se puede hack VS IDE y ponerlo a dormir (LOL), los efectos secundarios son los problemas que estaba experimentando, como brace coincidencia no funciona más.

Cómo reproducirlo:

  1. Crear un proyecto WinForm
  2. Crear un control
  3. Añadir el código de abajo en el control
  4. Reconstruir
  5. Abrir Form1 en el Diseñador

Te darás cuenta del Hilo.¡Duerme en acción ! Ahora, vuelve a la edición de código, la coincidencia de llaves y esas cosas se han ido. La única manera de solucionarlo es reiniciar VS.

Código para reproducir bug:

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!
}

Creo que VS Designer debería ignorar el hilo.Órdenes de dormir, ¿no?

Ahora solo compruebo si el código se está ejecutando dentro de VS Designer antes de hacer mis cosas llamando a:

    // Return if is inside VS Designer !
    if (System.Reflection.Assembly.GetEntryAssembly() == null)
        return;

También traté de agregar este código dentro de Form1, se ve que VS ignora el Sueño.

 5
Author: Pedro77,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-09 12:27:35

También me di cuenta de este problema. También noté que no había iniciado sesión en mi perfil de Visual Studio y una vez que resolví el problema de credenciales de Visual Studio online, la CPU hog desapareció.

 3
Author: Lucas B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-06 13:10:51