¿Cómo aliviar las molestias de una ventana ocupada pero que no responde?

¿Cómo aliviar las molestias de una ventana ocupada pero que no responde?

Estoy haciendo muchas simulaciones en Matlab en Windows XP. Normalmente siempre tengo un Matlab abierto que ejecuta una simulación extensa mientras hago mi trabajo en otra instancia.

Hay algunas molestias. Si accidentalmente hago clic en el nombre de la ventana "de trabajo" en la barra de tareas, seguirá marcada en amarillo para siempre (aproximadamente una hora) y si accidentalmente hago clic derecho sobre ella, se mostrará un menú contextual, pero nunca desaparecerá. Cubrir otras ventanas es lo más molesto.

Me pregunto si hay consejos sobre cómo hacer que ese menú contextual desaparezca sin matar mis cálculos.

Básicamente se verá así para siempre: pantalla ejemplar

Hasta ahora he aprendido que si pongo algunos wait(0.1)comandos en mi código esto evitará esto, pero también ralentizará terriblemente mis cálculos. Por eso no lo considero una opción.

Respuesta1

Supongo que, de forma predeterminada, Matlab ejecuta su simulación en el hilo de la interfaz de usuario. Entonces, mientras simulas, no hay tiempo para manejar nada relacionado con la interfaz de usuario.

Para solucionar este problema, deberá indicarle a Matlab que ejecute sus simulaciones en un nuevo hilo. Encontré algunos fragmentos en SO sobre esto:

La información encontrada en Google también parece apuntar en la dirección delCaja de herramientas de computación paralela.

Respuesta2

Esto es básicamente un subproducto del diseño de Windows: las aplicaciones reciben "mensajes" en respuesta a eventos de la interfaz de usuario y depende de la aplicación hacer cosas como volver a pintar su ventana, cambiar el tamaño, etc.

Windows enviará a la aplicación los "mensajes" apropiados en respuesta a eventos como clics en la interfaz de usuario, etc., pero la aplicación puede ignorarlos por completo y, por lo general, las aplicaciones mal diseñadas/portadas pueden hacerlo.

Una aplicación diseñada para "sentir" interactiva A) interrumpirá lo que está haciendo en varios momentos para procesar dichos mensajes, o B) tendrá un hilo separado que hace el trabajo real. Puedo ver que "sentirse interactivo" no es la prioridad de diseño de algunas aplicaciones, y si la aplicación es de hecho un entorno de desarrollo para ejecutar sus propios programas, entonces la responsabilidad de "sentirse interactivo" recae en usted. He jugado con Visual Studio y ejecutar programas que crean accidentalmente bucles interminables que hacen que el uso de la CPU de la aplicación se dispare hasta el 100% hace cosas similares con la interfaz de usuario.

No puedo pensar en el nombre de ninguno de estos programas ahora, pero existen algunos que le permitirán hacer el "espacio de trabajo múltiple" como lo hacen muchas computadoras de escritorio Linux. Si puede colocar sus instancias de MATLAB en espacios de trabajo separados utilizando un programa de este tipo, podría evitar que haga clic accidentalmente en él.

información relacionada