IR
irwinrodriguez.dev
Volver a documentacion

Referencia API

Referencia completa de FoxCoreClass, el objeto Task y la firma del procedimiento de tarea.

FoxCoreClass

Clase principal de FoxCore. COM ProgId: FoxCore.FoxCoreClass. Punto de entrada para crear y gestionar tareas asincronas.

Metodos

FirmaDescripcion
Run(lcProc AS STRING, loParams AS OBJECT) AS Task Ejecuta lcProc de forma asincrona. Retorna un objeto Task inmediatamente. loParams puede ser cualquier objeto VFP.
RunAll(@laProcs AS ARRAY) AS OBJECT Ejecuta un array de nombres de procedimiento en paralelo. Retorna un array de objetos Task, uno por entrada.
Cancel(loTask AS Task) AS VOID Solicita la cancelacion de loTask. El Task pasa a Status="Cancelled". La tarea debe verificar el estado para responder a la cancelacion.
WaitFor(loTask AS Task [, lnTimeoutMs AS NUMBER]) AS BOOLEAN Bloquea hasta que loTask termina o se supera lnTimeoutMs. Retorna .T. si la tarea termino, .F. si fue timeout. lnTimeoutMs es opcional (0 = sin limite).
GetActiveTasks() AS ARRAY Retorna un array con todos los Tasks en estado Pending o Running.
SetLicensePath(lcPath AS STRING) AS VOID Especifica la ruta donde FoxCore buscara FoxCore.lic. Llamar antes de Run() si el archivo no esta en la carpeta de la aplicacion.

Propiedades

PropiedadTipoDescripcion
Version STRING Version instalada de FoxCore. Solo lectura.
MaxWorkers NUMBER Numero maximo de tareas concurrentes. Default: 8. Maximo: 32.
Nota sobre MaxWorkers: El valor por defecto de MaxWorkers es 8. El maximo absoluto es 32. Cada worker es una instancia VFP independiente; incrementar demasiado este valor puede saturar la memoria del sistema.

Task

Objeto retornado por Run() y RunAll(). Representa una tarea individual y expone su estado, progreso y resultado.

Propiedades del Task

PropiedadTipoDescripcion
Id STRING Identificador unico (GUID) de la tarea.
Status STRING Estado actual: Pending, Running, Done, Failed, Cancelled.
Progress NUMBER Progreso 0-100. Lo establece el procedimiento de tarea.
Result ANY Valor de resultado al completarse. Lo establece el procedimiento de tarea.
Error STRING Mensaje de error cuando Status="Failed".
StartedAt DATETIME Fecha/hora en que la tarea comenzo a ejecutarse.
FinishedAt DATETIME Fecha/hora en que la tarea termino (Done, Failed o Cancelled).

Callbacks de eventos

PropiedadTipoDescripcion
OnComplete STRING Nombre del procedimiento a invocar cuando Status pasa a Done.
OnFailed STRING Nombre del procedimiento a invocar cuando Status pasa a Failed.
OnProgress STRING Nombre del procedimiento a invocar cada vez que Progress cambia.

Firma del procedimiento de tarea

Todo procedimiento que se ejecute como tarea debe aceptar exactamente estos dos parametros.

PROCEDURE MyTask(loParams AS OBJECT, loTask AS OBJECT)
    * loParams -- data passed from Run() by the caller
    * loTask   -- the Task object: set Progress and Result here
    loTask.Progress = 50
    loTask.Result   = "my result value"
ENDPROC

Ciclo de vida del estado

Un Task avanza por los siguientes estados:

[Pending] -> [Running] -> [Done]
                      \-> [Failed]
                      \-> [Cancelled]

Siguiente: Ejemplos ->