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
| Signatur | Beschreibung |
|---|---|
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
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 ->