TaskFinished
value TaskFinished ( value task );
Rückgabewert
Rückgabewert |
Beschreibung |
TRUE / true / 1 |
Die Hintergrundaufgabe des TASK-Objekts task wurde beendet. |
FALSE / false / 0 |
Die Hintergrundaufgabe des TASK-Objekts task wurde noch nicht beendet. |
Parameter
rest
Die gültige TASK-Objekt, bei dem geprüft werden soll, ob dessen Hintergrundaufgabe beendet wurde.
Bemerkungen
Prüft, ob das TASK-Objekts task seine Hintergrundaufgabe beendet hat. Diese Funktion sagt nur aus, das die Hintergrundaufgabe nicht mehr abgearbeitet wird. Was der Grund für das Beenden der Abarbeitung war, als ob "aborted", "canceled" oder "completed", kann nur über die entsprechende Funktion TaskAborted, TaskCanceled bzw. TaskCompleted geprüft werden.
Das Ergebnis von TaskFinished sagt nichts darüber aus, ob die Hintergrundaufgabe erfolgreich abgearbeitet wurde oder ob während der Abarbeitung ein Fehler aufgetreten ist. Um das eigentliche Ergebnis der Abarbeitung der Hintergrundaufgabe zu prüfen muss TaskSuccessful oder eine der TaskGetResult-Funktionen aufgerufen werden.
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", "/"); if (task == NULL) RestWorker = REST_ERROR; break; end RestWorker = REST_REQUEST_RUNNING; break; case REST_REQUEST_RUNNING: if (TaskFinished(task)) if(!TaskSuccessful(task)) 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_ERROR: if (rest != NULL) if (task != NULL) strLastError = TaskGetLastError(task); else strLastError = RestGetLastError(rest); end end RestWorker = REST_REQUEST_DONE; break; case REST_REQUEST_DONE: if (task != NULL) TaskClose(task); end RestDisconnect(rest); RestWorker = REST_STANDBY; break; end
Siehe auch TaskAborted, TaskCanceled, TaskCompleted, TaskStatus, TaskGetLastError, TaskCancel