BUILD PROJECT Asynchronous FROM (SYS(16)) BUILD EXE Asynchronous FROM Asynchronous PUBLIC goClient m.goClient = CREATEOBJECT("AsyncClient") m.goClient.StartLongOperation("WAIT TIMEOUT 10") DEFINE CLASS AsyncClient as Timer Helper = Null FUNCTION Init This.Helper = CREATEOBJECT("Asynchronous.Helper") This.Helper.ClientObj = This ENDFUNC FUNCTION StartLongOperation LPARAMETERS cScript ?"Doing some long operation" This.Helper.Script = m.cScript This.Interval = 1000 ENDFUNC FUNCTION Timer ??"." ENDFUNC FUNCTION CallBack MESSAGEBOX("Operation completed!") This.Interval = 0 ENDFUNC ENDDEFINE DEFINE CLASS Helper As Timer OLEPUBLIC Interval = 1000 ClientObj = Null Script = "" FUNCTION Timer IF EMPTY(This.Script) THEN RETURN ENDIF EXECSCRIPT(This.Script) This.Script = "" This.ClientObj.CallBack() ENDFUNC ENDDEFINE