IR
irwinrodriguez.dev
Zuruck zur Dokumentation

API-Referenz

Vollstandige Referenz fur FoxCoreClass, das Task-Objekt und die Aufgabenprozedur-Signatur.

FoxCoreClass

Hauptklasse von FoxCore. COM ProgId: FoxCore.FoxCoreClass. Einstiegspunkt zum Erstellen und Verwalten asynchroner Aufgaben.

Methoden

SignaturBeschreibung
Run(lcProc AS STRING, loParams AS OBJECT) AS Task Fuhrt lcProc asynchron aus. Gibt sofort ein Task-Objekt zuruck. loParams kann ein beliebiges VFP-Objekt sein.
RunAll(@laProcs AS ARRAY) AS OBJECT Fuhrt ein Array von Prozedurnamen parallel aus. Gibt ein Array von Task-Objekten zuruck, eines pro Eintrag.
Cancel(loTask AS Task) AS VOID Fordert die Stornierung von loTask an. Der Task wechselt zu Status="Cancelled". Die Aufgabe muss den Status prufen, um auf die Stornierung zu reagieren.
WaitFor(loTask AS Task [, lnTimeoutMs AS NUMBER]) AS BOOLEAN Blockiert, bis loTask abgeschlossen ist oder lnTimeoutMs verstreicht. Gibt .T. zuruck, wenn die Aufgabe abgeschlossen wurde, .F. bei Timeout. lnTimeoutMs ist optional (0 = kein Limit).
GetActiveTasks() AS ARRAY Gibt ein Array mit allen Tasks im Zustand Pending oder Running zuruck.
SetLicensePath(lcPath AS STRING) AS VOID Gibt den Pfad an, in dem FoxCore nach FoxCore.lic sucht. Vor Run() aufrufen, wenn sich die Datei nicht im Anwendungsordner befindet.

Eigenschaften

EigenschaftTypBeschreibung
Version STRING Installierte FoxCore-Versionszeichenfolge. Nur-Lese.
MaxWorkers NUMBER Maximale Anzahl gleichzeitiger Aufgaben. Standard: 8. Maximum: 32.
Hinweis zu MaxWorkers: Der Standardwert von MaxWorkers ist 8. Das absolute Maximum ist 32. Jeder Worker ist eine unabhangige VFP-Instanz; ein zu hoher Wert kann den Systemspeicher satigen.

Task

Objekt, das von Run() und RunAll() zuruckgegeben wird. Stellt eine einzelne Aufgabe dar und zeigt Status, Fortschritt und Ergebnis.

Task-Eigenschaften

EigenschaftTypBeschreibung
Id STRING Eindeutige Aufgabenkennung (GUID).
Status STRING Aktueller Zustand: Pending, Running, Done, Failed, Cancelled.
Progress NUMBER Fortschritt 0-100. Wird von der Aufgabenprozedur gesetzt.
Result ANY Ergebniswert beim Abschluss. Wird von der Aufgabenprozedur gesetzt.
Error STRING Fehlermeldung wenn Status="Failed".
StartedAt DATETIME Datum/Uhrzeit, zu der die Aufgabe zu laufen begann.
FinishedAt DATETIME Datum/Uhrzeit, zu der die Aufgabe beendet wurde (Done, Failed oder Cancelled).

Ereignis-Callbacks

EigenschaftTypBeschreibung
OnComplete STRING Name der Prozedur, die aufgerufen wird, wenn Status zu Done wechselt.
OnFailed STRING Name der Prozedur, die aufgerufen wird, wenn Status zu Failed wechselt.
OnProgress STRING Name der Prozedur, die bei jeder Anderung von Progress aufgerufen wird.

Signatur der Aufgabenprozedur

Jede Prozedur, die als Aufgabe ausgefuhrt wird, muss genau diese zwei Parameter akzeptieren.

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

Status-Lebenszyklus

Ein Task durchlauft die folgenden Zustande:

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

Weiter: Beispiele ->