TaskStatus
string TaskStatus ( value task );
Rückgabewert
Rückgabewert |
Beschreibung |
"loaded" |
Die Aufgabe und deren Daten wurden geladen. Die Aufgabe befindet sich noch nicht in der Warteschlange. |
"queued" |
Das Aufgabe befindet sich in der Warteschlange des Thread-Pools, wo sie auf ihre Ausführung wartet. |
"running" |
Die Abarbeitung der Aufgabe läuft gerade. |
"canceled" |
Die Aufgabe wurde abgebrochen, bevor sie in den Status "running" überging. |
"aborted" |
Die Aufgabe wurde abgebrochen, während sie ausgeführt wurde. |
"completed" |
Die Aufgabe ist erledigt. |
Parameter
rest
Die gültige TASK-Objekt, bei dem der Status ihrer Hintergrundaufgabe abgerufen werden soll.
Bemerkungen
Liefert das string-Ergebnis über den Status der Hintergrundaufgabe des TASK-Objekts task.
Beispiel
////////////////////////////////////////////////////////////////////// //Globale Variablen value rest = 0; value task = 0; value RestWorker = 0; value REST_CONNECT_START = 0; value REST_CONNECT_RUNNING = 10; value REST_REQUEST_START = 20; value REST_REQUEST_RUNNING = 30; value REST_REQUEST_DONE = 40; value REST_ERROR = -100; value REST_STANDBY = -1; string strLastError; string strResponse; ////////////////////////////////////////////////////////////////////// //_MainCycle // ////////////////////////////////////////////////////////////////////// switch (RestWorker) case REST_CONNECT_START: //ip.jsontest.com liefert als Antwort die IP-Adresse des anfragenden Clients task = RestConnectAsync(rest, "http://ip.jsontest.com"); if (task == NULL) RestWorker = REST_ERROR; break; end RestWorker = REST_CONNECT_RUNNING; break; case REST_CONNECT_RUNNING: if (TaskFinished(task)) if(!TaskSuccessful(task)) RestWorker = REST_ERROR; else TaskClose(task); RestWorker = REST_REQUEST_START; end end break; case REST_REQUEST_START: task = RestFullRequestAsync(rest, "GET", "/"); TaskCancel(task); //Absichtlicher Abbruch der Anfrage if (task == NULL) RestWorker = REST_ERROR; break; end RestWorker = REST_REQUEST_RUNNING; break; case REST_REQUEST_RUNNING: if (TaskFinished(task)) if(!TaskSuccessful(task)) if (TaskCanceled(task)) strLastError = TaskStatus(task); //Inhalt von strLastError: //canceled RestWorker = REST_STANDBY; break; elseif (TaskAborted(task)) strLastError = TaskStatus(task); //Inhalt von strLastError: //aborted RestWorker = REST_STANDBY; break; end RestWorker = REST_ERROR; break; else TaskGetResultString(task, strResponse); strResponse = JsonExpand(strResponse); //Inhalt von strResponse: //{ // "ip": "82.165.12.98" //} RestWorker = REST_REQUEST_DONE; end end break; case REST_REQUEST_DONE: RestDisconnect(rest); RestWorker = REST_STANDBY; break; case REST_ERROR: if (rest != NULL) if (task != NULL) strLastError = TaskGetLastError(task); else strLastError = RestGetLastError(rest); end RestDisconnect(rest); end RestWorker = REST_STANDBY; break; end
Siehe auch TaskFinished, TaskAborted, TaskCanceled, TaskCompleted, TaskGetLastError, TaskCancel