Prompt de Comando do Windows - Pausa durante o uso do mousedown

2

Quando o mouse é pressionado 'down' na barra de rolagem do prompt, por exemplo, durante um comando longo ( dir /a /s c:\ , por exemplo), a saída parece estar pausada.

Não apenas isso, mas o uso da CPU para cmd.exe cai para zero, contanto que o mouse permaneça inativo. Quando é liberado, o uso da CPU retorna ao normal.

Isso significa que os comandos do terminal estão suspensos durante o mousedown dessa maneira? Ou a saída está simplesmente pausada? A falta de qualquer uso da CPU parece apontar suspeitamente para uma suspensão do processo.

    
por Unsigned 08.10.2011 / 06:30

3 respostas

3

Tecnicamente, apenas a exibição da saída é suspensa enquanto você mantém a barra de rolagem: o subsistema do console pára temporariamente de ler o buffer de saída e exibi-lo. No entanto, o processo permanece em execução e o buffer de saída é preenchido muito rapidamente, o que torna todo o "bloco" de write () adicional enquanto o buffer estiver cheio. É isso que faz o processo parecer pausado.

(Note que existem dois componentes distintos - a janela do console e os programas em execução. O "Prompt de comando" é apenas o interpretador do comando cmd.exe , mas a janela junto com as barras de rolagem é exibida pelo CSRSS.

    
por 08.10.2011 / 15:25
2

Podemos ser definitivos:

ver|time > time1.txt && dir /s && ver|time > time2.txt

Execute isto com e sem pausar a saída e você verá que o tempo de processamento é mais demorado. Não é apenas a saída que está sendo pausada.

    
por 08.10.2011 / 14:31
1

Eu diria que sim, o processo está suspenso ao mover a barra de rolagem. Quando copio com o robocopy, e rola a janela para cima para ver qual arquivo eu notei um erro na cópia, o robocopy espera onde está até que eu termine de rolar e solte o botão do mouse. Não há disco rígido ou atividade de rede de robocopy enquanto eu tenho controle da barra de rolagem. Depois de soltar a barra de rolagem, ela salta para o fundo e a robocopy continua como estava.

    
por 08.10.2011 / 08:14