none
Mensaje: Se detectó ContextSwitchDeadlock RRS feed

  • Pregunta

  • Hola,

    Desde hace un tiempo cuando lanzo en mi aplicación desde Visual Studio 2010 recibó un mensaje de advertencia con el texto: "Mensaje: Se detectó ContextSwitchDeadlock"

    El texto que obtengo en el mensaje de MDA es:

    "Se detectó ContextSwitchDeadlock
    Message: El CLR no ha podido realizar la transición del contexto COM 0x4d4038 al contexto COM 0x4d41a8 durante 60 segundos. Es probable que el subproceso que contiene el contexto o apartamento de destino esté en espera sin proporcionar mensajes o que procese una operación de ejecución muy larga que no proporcione mensajes Windows. Normalmente, esta situación tiene un impacto negativo en el rendimiento y puede hacer que la aplicación no responda o que acumule continuamente el uso de la memoria. Para evitar este problema, todos los subprocesos de contenedores uniproceso (STA) deberían utilizar primitivos de espera que proporcionen mensajes (como CoWaitForMultipleHandles) y proporcionar mensajes regularmente durante operaciones de ejecución largas."

    La verdad es que mi nivel de conocimiento no me permite entender totalmente cómo puedo solventar o mejorar mi aplicación para que este error no me asalte. Sin duda parece que en un problema que afecta al rendimiento de la aplicación debido a una operación de ejecución bastante larga como así es realmente. Este tipo de error sólo me aparece ante operaciones de al menos varios minutos de duración.

    ¿alguna sugerencia o idea sobre lo que puede estar ocurriendo?

    Muchas gracias

    Un saludo

    Angel


    • Editado Angeleci miércoles, 19 de agosto de 2015 18:00
    miércoles, 19 de agosto de 2015 17:59

Respuestas

  • Es una advertencia del depurador y ocurre en tiempo de depuración

    Este es el artículo en la ayuda. 

    Es una advertencia que puedes ignorar, y posiblemente no puedas hacer mucho más que eso.

    Puedes silenciar la advertencia, si es molesta y aparece continuamente (cosa bastante infrecuente según el artículo anterior). Este otro artículo te dice cómo. Por ejemplo creando un archivito nombreDeAplicación.mda.config

    miércoles, 19 de agosto de 2015 19:50

Todas las respuestas

  • Es una advertencia del depurador y ocurre en tiempo de depuración

    Este es el artículo en la ayuda. 

    Es una advertencia que puedes ignorar, y posiblemente no puedas hacer mucho más que eso.

    Puedes silenciar la advertencia, si es molesta y aparece continuamente (cosa bastante infrecuente según el artículo anterior). Este otro artículo te dice cómo. Por ejemplo creando un archivito nombreDeAplicación.mda.config

    miércoles, 19 de agosto de 2015 19:50
  • Gracias por la respuesta.

    Voy a probar con el articulo que me indicas y te cuento que tal.

    Un saludo


    Angel

    jueves, 20 de agosto de 2015 17:34
  • Hola AlterEgo22.

    Solo comentarte que he conseguido solventar el problema que tenia gracias a tu indicaciones y al articulo que me has remitido.

    Muchas gracias

    Angel

    miércoles, 26 de agosto de 2015 15:07