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. :)