Como aliviar aborrecimentos de uma janela ocupada, mas sem resposta?

2

Estou fazendo muitas simulações no Matlab no Windows XP. Normalmente eu sempre tenho um Matlab aberto que executa uma longa simulação enquanto eu faço meu trabalho em outra instância.

Existem alguns aborrecimentos. Se eu acidentalmente clicar no nome da janela "working" na barra de tarefas, ela ficará marcada para sempre em amarelo (cerca de uma hora) e se eu acidentalmente clicar com o botão direito nela, um menu de contexto será exibido - mas nunca desaparecerá. Cobrindo outras janelas - o mais irritante.

Gostaria de saber como fazer com que esse menu de contexto desapareça sem matar meus cálculos.

Basicamente, ficará assim para sempre:

Até agora, aprendi que, se eu colocasse alguns comandos wait(0.1) no meu código, isso impediria isso, mas também atrasaria terrivelmente meus cálculos. Portanto, não considero uma opção.

    
por bdecaf 12.04.2012 / 13:36

2 respostas

1

Eu diria, por padrão, que o Matlab executa sua simulação no thread da interface do usuário. Então, enquanto você está simulando, não há tempo para lidar com nada relacionado à interface do usuário.

Para contornar isso, você teria que instruir o Matlab a executar suas simulações em um novo tópico. Eu encontrei alguns bits no SO sobre isso:

As informações encontradas no Google também parecem apontar na direção da Caixa de ferramentas de computação paralela .

    
por 12.04.2012 / 14:16
0

Este é basicamente um subproduto do design do Windows - Aplicativos recebem "mensagens" em resposta a eventos da interface do usuário e cabe ao aplicativo fazer coisas como repintar a janela, redimensionar etc.

O Windows enviará ao aplicativo as "mensagens" apropriadas em resposta a eventos como cliques da interface do usuário, etc., mas o aplicativo pode ignorá-las completamente, e aplicativos geralmente mal projetados / portados podem fazer isso.

Um aplicativo projetado para "sentir" a interação A) interromperá o que está fazendo em vários momentos para processar essas mensagens, ou B) terá um thread separado que faz o trabalho real. Eu posso ver onde "sentir-se interativo" não é prioridade de design de alguns aplicativos, e se o aplicativo é de fato um ambiente de desenvolvimento para executar seus próprios programas, a responsabilidade de "sentir-se interativo" recai sobre você. Eu joguei com o Visual Studio e executar programas que acidentalmente criam loops infinitos, fazendo com que o uso da CPU do aplicativo atinja até 100% faz coisas parecidas com a interface do usuário.

Não consigo pensar no nome de nenhum desses programas agora, mas existem alguns programas que permitem que você faça a "área de trabalho múltipla" como muitos desktops Linux têm. Se você puder colocar suas instâncias do MATLAB em espaços de trabalho separados usando um programa desse tipo, isso poderá ajudar a evitar que você clique acidentalmente nele.

    
por 12.04.2012 / 14:03