Ola a todos,
A questao do DoEvents eh saber a frequencia do chamamento da função. aSimoes, ao que parece chama a função a cada skip.
Em um processamento de 80 mil registros, devo chamar DoEvents a cada registro?
Janio
Usar processamento 8 Nucleos
Moderador: Moderadores
Usar processamento 8 Nucleos
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usar processamento 8 Nucleos
É pra usar somente aonde necessário, aonde não houver outra alternativa, e sem abuso.
Lembra do Clipper? 100% de CPU?
Pois é, uma das opções era a OSLIB, e fazer chamadas a OL_Yield().
Isso liberava tempo para o Windows fazer outras coisas.
Quanto mais tempo liberado para o Windows, menos tempo liberado para o Clipper.
Programação não é roupa, não tem que acompanhar a moda.
Lógico, é só fazer como a gente costumar fazer:
É fazer um teste em determinada rotina que pode precisar disso e ver o que acontece.
Lembrando que o tradicional sempre funciona, e faz parte do Harbour.
Lembra do Clipper? 100% de CPU?
Pois é, uma das opções era a OSLIB, e fazer chamadas a OL_Yield().
Isso liberava tempo para o Windows fazer outras coisas.
Quanto mais tempo liberado para o Windows, menos tempo liberado para o Clipper.
Programação não é roupa, não tem que acompanhar a moda.
Lógico, é só fazer como a gente costumar fazer:
É fazer um teste em determinada rotina que pode precisar disso e ver o que acontece.
Lembrando que o tradicional sempre funciona, e faz parte do Harbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Usar processamento 8 Nucleos
Sería deseable llamar DoEvens en cada skip.
No existe límites en el número de llamados, lo importante es que la cola de mensajes de Windows no se atasque. Si la cola de mensajes esta vacía DoEvents no hace nada porque PeekMessage retorna 0 y se termina el while de DoEvents
No existe límites en el número de llamados, lo importante es que la cola de mensajes de Windows no se atasque. Si la cola de mensajes esta vacía DoEvents no hace nada porque PeekMessage retorna 0 y se termina el while de DoEvents
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usar processamento 8 Nucleos
É que o VB6 também tem um DoEvents(), que é para que outras tarefas sejam efetuadas.
O próprio nome DO EVENTS, parece estar relacionado a "execute eventos".
Por isso achei que se tratava da mesma coisa, igual ao usado no Clipper pra não consumir 100% de CPU.
Pelo que entendi, os eventos do Windows são como se fossem o KEYBOARD do Harbour, mas sempre acumulando o que deve ser feito.
Se essas pendências se acumularem demais, o Windows acaba considerando que travou.
Nesse caso, esse DoEvents() foi criado foi pra desprezar essas pendências, e não tem nada a ver com o DoEvents() do VB, ou OL_Yield() da OSLIB pra evitar 100% de CPU.
Então seria considerar que os eventos serão perdidos ao chamar DoEvents(), na hora de decidir em que rotina colocar.
.
O próprio nome DO EVENTS, parece estar relacionado a "execute eventos".
Por isso achei que se tratava da mesma coisa, igual ao usado no Clipper pra não consumir 100% de CPU.
Pelo que entendi, os eventos do Windows são como se fossem o KEYBOARD do Harbour, mas sempre acumulando o que deve ser feito.
Se essas pendências se acumularem demais, o Windows acaba considerando que travou.
Nesse caso, esse DoEvents() foi criado foi pra desprezar essas pendências, e não tem nada a ver com o DoEvents() do VB, ou OL_Yield() da OSLIB pra evitar 100% de CPU.
Então seria considerar que os eventos serão perdidos ao chamar DoEvents(), na hora de decidir em que rotina colocar.
.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/