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.

Sie können das folgende Beispiel in Ihrem Arbeitsbereich ausprobieren:
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
Zur Verwendung dieser Funktionalität müssen Sie die folgende Anweisung import eingeben:
   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.

Zwei Definitionen sollen helfen, die Beziehungen zu verdeutlichen:
Der Job-Scheduler ist eine Variable, die auf einem externen EGL-Typ mit dem Namen 'Job' basiert. Wenn Sie die Variable deklarieren, können Sie die folgenden Eigenschaften festlegen:
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.
Sie können einen Job-Scheduler verwenden, um die folgenden Funktionen aufzurufen:
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.


Feedback