Completando o que eu fiz:
Hb_ThreadStart() funciona neste caso.
::nTmpSistema := 300 // Verifica a cada 5 minutos
::Liga_Timer( oWin, .T., ::nTmpSistema, { || ::CheckLiveNet( oWin ) }, "oTimer" ) // USA O OBJETO SET TIMER
METHOD CheckLiveNet( oWin )
LOCAL hEstacaoCobranca, cEstacaoCobranca
::Liga_Timer( oWin, .F.,,,"oTimer" )
IF nTempoUltimaVerificacaoSistema = Nil
nTempoUltimaVerificacaoSistema := Seconds()
ENDIF
IF Seconds() - nTempoUltimaVerificacaoSistema >= ::nTmpSistema
nThread := Hb_ThreadStart( Hb_BITOR( HB_THREAD_INHERIT_PUBLIC, HB_THREAD_INHERIT_PRIVATE, HB_THREAD_INHERIT_MEMVARS ), {|| ::NetWork() } )
::WaitThread( nThread )
nTempoUltimaVerificacaoSistema := Seconds()
ENDIF
hwg_WriteStatus( ThisFormMain, 1, Time() )
hwg_ProcessMessage()
::Liga_Timer( oWin, .T., ::nTmpSistema, { || ::CheckLiveNet( oWin ) }, "oTimer" )
RETURN Nil
METHOD WaitThread( nThread )
DO WHILE .T.
IF hb_ThreadWait( nThread, 0.1, .T. ) == 1
EXIT
ENDIF
hwg_ProcessMessage()
ENDDO
RETURN Nil