Sobre a relação mouse/consumo de CPU em sistema Gaspro

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

prmuller
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 11 Nov 2008 12:25
Localização: Vila Velha - ES

Sobre a relação mouse/consumo de CPU em sistema Gaspro

Mensagem por prmuller »

Amigos, bom dia!

Sobre o assunto, acompanhei alguns tópicos aqui no fórum, mas, sinceramente, não cheguei a uma conclusão objetiva.
Caso alguém tenha solucionado o problema, poderia, por gentileza postar quais são as alterações necessárias a se fazer?
Grato,

Paulo Müller
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Sobre a relação mouse/consumo de CPU em sistema Gaspro

Mensagem por Jairo Maia »

Olá Paulo,

Se seu sistema GASPro é multiusuário e está com o tempo de refresh ativado (maior que zero), coloque estas linhas no final da função MouseGet() (antes do Return), e veja se funciona:

Código: Selecionar todos

If !brw
 SecondsSleep()
ElseIf tempo + .1 < Seconds()
 SecondsSleep()
EndIf
Nota: Caso seu sistema não esteja com tempo de refresh ativo, ao acessar as consultas usará 100% do processador. Se você ativar a função SecondsSleep() de modo geral, nas consultas sem o controle de tempo, na rolagem os dados somem da tela até estabilizar, ou seja, até encerrar a rolagem.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
prmuller
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 11 Nov 2008 12:25
Localização: Vila Velha - ES

Sobre a relação mouse/consumo de CPU em sistema Gaspro

Mensagem por prmuller »

Oi Jairo,

Obrigado pela dica.
Realmente, acrescentando as linhas, o uso da CPU volta ao normal (0 ou proximo), porém, quando clico em consulta o sistema cai. Em inclusão ou manutenção, fica normal.
O tempo da tela fica no padrão do Gaspro sempre (20/25 segundos). Será que tem a ver com isso essa queda nas consultas?

Sds,
Paulo Müller
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Sobre a relação mouse/consumo de CPU em sistema Gaspro

Mensagem por Jairo Maia »

Olá Paulo,

É que faltou informar para você declarar a variável tempo. Faça o seguinte:

1 - Na função BRWFUNC(), declare como Privada a variável tempo (ou troque para o nome que melhor lhe desejar, e ajuste também a MouseGet() ). No início da BRWFUNC() declare dessa forma:

Código: Selecionar todos

Private tempo := Seconds()
2 - Procure na BRWFUNC() as duas sequências identicas a essa:

Código: Selecionar todos

  #ifdef COM_REDE
   tecl_p=IN_KEY(drvtempo)                    // espera tecla ser digitada
  #else
   tecl_p=IN_KEY(0)                           // espera tecla ser digitada
  #endi
3 - Acrescente o controle de tempo ficando da seguinte forma:

Código: Selecionar todos

  #ifdef COM_REDE
   tecl_p=IN_KEY(drvtempo)                    // espera tecla ser digitada
  #else
   tecl_p=IN_KEY(0)                           // espera tecla ser digitada
  #endi
  tempo := Seconds()  // <- acrescente esta linha
Veja, apenas acrescente após o último #endi dessa sequência a linha: tempo := Seconds(). Espero ter sido claro, se sim, faça isso e acho que então vai funcionar.

Nota: Uma correção: diferente do que citei acima que precisa ser multiusuário, isso funciona também nos sistemas GASPro monousuário.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
prmuller
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 11 Nov 2008 12:25
Localização: Vila Velha - ES

Sobre a relação mouse/consumo de CPU em sistema Gaspro

Mensagem por prmuller »

Grande Jairo,

Na mosca, funcionando perfeitamente agora o mouse (no menú vertical).
Acho que este foi o último ajuste a ser feito, já que vou deixar em modo console mesmo rodando em janela.
Muito obrigado pela ajuda e pela aula!

Sds,

Paulo Müller
Responder