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
| Firma | Descripcion |
|---|---|
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
| Propiedad | Tipo | Descripcion |
|---|---|---|
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
| Propiedad | Tipo | Descripcion |
|---|---|---|
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
| Propiedad | Tipo | Descripcion |
|---|---|---|
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 ->