Rich-UI-Job-Scheduler
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.
- Die Ausführungsfunktion ist die Funktion, die aufgerufen wird, wenn der Job terminiert wird. Die Ausführungsfunktion in diesem Beispiel heißt myRunFunction.
- Die aktuelle Funktion ist die Funktion, die ausgeführt wird, während der Zeitgeber läuft.
- name
- Wird vom EGL-Debugger zur Angabe des Job-Schedulers verwendet. Wenn Sie diese Eigenschaft nicht angeben, ist der Wert von name der Variablenname.
- runFunction
- Gibt die Ausführungsfunktion an, die keine Parameter und keinen Rückgabewert hat.
- schedule (int millisekunden)
- Legt sofort einen Zeitgeber für die angegebene Anzahl Millisekunden fest und veranlasst nachfolgend einen Aufruf der Ausführungsfunktion. Der Aufruf findet frühestens statt, wenn der Zeitgeber abläuft oder wenn die aktuelle Funktion beendet wird, je nachdem, welches dieser Ereignisse zuletzt eintritt. Wenn Sie millisekunden nicht angeben, erfolgt der Aufruf frühestens, sobald die aktuelle Funktion beendet ist.
- repeat (int millisekunden)
- Legt sofort einen Zeitgeber für die angegebene Anzahl Millisekunden fest und veranlasst
nachfolgend einen wiederholten Aufruf der Ausführungsfunktion.
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.
- cancel()
- Bricht spätere Aufrufe des Jobs ab.
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.