Isso permite conversa entre threads.
Não o fonte exato, apenas aproximado, pra dar uma idéia.
Código: Selecionar todos
ExecutaAguarda( { || Seila() } )
FUNCTION ExecutaAguarda( bCode )
o := ProcessoClass():New()
o:Block := bCode
hb_TheadStart( { || o:Execute() } )
DO WHILE ! o:Acabou
Inkey(0.3)
ENDDO
RETURN NIL
CREATE CLASS ProcessoClass
VAR Acabou INIT .F.
VAR Block INIT {}
METHOD Execute() INLINE Eval( ::Block ), ::Acabou := .T.
ENDCLASS


