Der Rich-UI-Job-Scheduler ist ein Zeitgeber, mit dessen Hilfe Sie eine angepasste Funktion nach Ablauf einer angegebenen Anzahl von Millisekunden aufrufen können. Sie können mehrere Jobs terminieren und Sie können sie als Antwort auf Laufzeitbedingungen abbrechen.
import com.ibm.egl.rui.widgets.Button;
import egl.javascript.Job;
handler MyHandler type RUIhandler { initialUI = [stopButton],
onConstructionFunction = initialization }
stopButton Button{text="Stop!", onclick ::= pleaseStop};
doThis Job{runFunction = myRunFunction};
function initialization()
doThis.repeat(1000);
end
function myRunFunction()
sysLib.writeStdOut(currentTime());
end
function pleaseStop(e event in)
doThis.cancel();
end
end
import egl.javascript.Job;
Sie können diese Anweisung nicht mit dem Strg-Umschalt-O-Mechanismus hinzufügen, der für Widgettypen verfügbar ist.
Der Zeitgeber wird jedes Mal zurückgesetzt, wenn die Ausführungsfunktion gestartet wird. Die Regel für jeden Aufruf der Ausführungsfunktion, einschließlich des ersten, besteht darin, dass der Aufruf frühestens dann erfolgt, wenn der Zeitgeber abläuft oder wenn die aktuelle Funktion beendet ist, je nachdem, welches dieser Ereignisse zuletzt eintritt.
Der Aufruf einer Ausführungsfunktion unterbricht nie die Ausführung einer anderen Funktion. Beispiel: Zwischen dem Zeitpunkt, zu dem ein Job terminiert wird, und dem Zeitpunkt, zu dem der Aufruf der Ausführungsfunktion möglich ist, könnte der Benutzer auf eine Schaltfläche klicken, um die Terminierung eines Ereignishandlers zu veranlassen. In diesem Fall wartet der Aufruf der Jobfunktion mindestens so lange, bis der Ereignishandler die eigenen untergeordneten Funktionen, sofern vorhanden, aufruft und selbst beendet wird.
Sie können mehrere Variablen vom Typ JOB erstellen und auf diese Weise mehrere Jobs terminieren und sogar dieselbe Ausführungsfunktion aufrufen. In allen Fällen kann nur eine Funktion zu einer Zeit ausgeführt werden und diese Funktion wird bis zum Abschluss ausgeführt.
Wenn Sie einen Job mit derselben Variable erneut terminieren, wird die vorherige Verwendung dieser Variablen abgebrochen.