Página 1 de 1

Funciones asíncronas en el futuro Xailer

Publicado: Dom Sep 01, 2019 12:05 pm
por ignacio


Ejemplos de uso:
1 ) Con comandos

Código: Seleccionar todo

METHOD ASYNC Btn1Click( oSender ) CLASS TForm1
...
   AWAIT INLINE {||
         FOR nFor := 1 TO 100
            Sleep(10)
            SYNCHRO INLINE {|| ::oPb1:nValue := nFor }
         NEXT
      RETURN "Exit from first serie"
      }

   // lastAwait is a private VAR with the return value of previous Await command

   AWAIT INLINE {||
      SYNCHRO INLINE { ||  Msginfo( lastWait ) }

      RETURN NIL
      }
RETURN NIL
2) Version POO:

Código: Seleccionar todo

   LOCAL oFuture AS CLASS TFuture
   LOCAL oTask AS CLASS TFutureTask
   LOCAL bWork
   LOCAL nFor

   oFuture := TFuture():New()

   bWork := { ||
      FOR nFor := 1 TO 100
         Sleep(30)
         oFuture:AddSynchroTask( {||::oPb3:nValue := nFor } )
      NEXT
      RETURN "Exit from third serie"
   }

   oFuture:OnComplete := {|| Msginfo( oTask:ReturnValue )  }
   oTask := oFuture:AddThreadTask( bWork )

 RETURN Nil

Re: Funciones asíncronas en el futuro Xailer

Publicado: Lun Sep 02, 2019 4:51 am
por Carlos Ortiz
Muchas gracias !!!

Re: Funciones asíncronas en el futuro Xailer

Publicado: Mar Sep 17, 2019 11:26 am
por bingen
Esto va a dar mucho juego, ahora usamos varios Threads (unos 6) para multiples cosas y van muy bien pero son algo más liosos que lo que planteas.

Gracias.