Página 1 de 1
ol_autoyield() ou timeslic (dosidle()) ?????
Enviado: 01 Jul 2008 14:08
por adilson
Boa Tarde Pessoal,
Existe alguma diferenca entre as duas funcoes acimas sitadas??
Eu Estou usando por exemplo a ol_autoyield(.t.) , e tb existe a dosidle() do timeslic do maligno
tem alguma vantagem ou desvantagem entre uma e outra ??
+1 vez obrigado
abraços
Enviado: 01 Jul 2008 14:48
por Maligno
Em termos de código, a FreeTSlice() utiliza o evento do teclado para disparar a função que devolve o controle da CPU ao sistema operacional. Como a idéia é evitar que o Clipper se perca no processo de coleta de lixo, que é o que consome CPU em excesso, nada mais racional que devolver a CPU no momento em que essa coleta de lixo estiver para ser feita: no evento de teclado. O problema morre na raiz.
Do seu lado, a função OL_AutoYield() também devolve o controle da CPU ao SO usando o mesmo artifício, mas isso é feito por um evento que é executado de tempos em tempos. Ou seja, ela tenta devolver a CPU ao SO em momentos em que isso sequer poderia ser feito.
Em termos práticos, pela minha experiência, digo que a FreeTSlice() nunca me falhou, mas a OL_AutoYield() por vezes não funcionou como deveria. Mas há quem use sem problema. Experimente uma. Se não funcionar certinho, use a outra.
