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 

Die TASK-Funktionen

Siehe auch TaskFinished, TaskAborted, TaskCanceled, TaskCompleted, TaskGetLastError, TaskCancel