4D v16.3

CALL WORKER

Home

 
4D v16.3
CALL WORKER

CALL WORKER 


 

CALL WORKER ( Prozess ; Methode {; Param}{; Param2 ; ... ; ParamN} ) 
Parameter Typ   Beschreibung
Prozess  Text, Lange Ganzzahl in Name oder Nummer des Worker Prozesses
Methode  Text in Name der aufzurufenden Projektmethode
Param  Ausdruck in Parameter für die Methode

Der Befehl CALL WORKER erstellt oder ruft den Worker Prozess mit dem Namen oder der Nummer auf, übergeben in Prozess, und fordert auf, die Methode in ihrem Kontext mit dem optionalen Parameter Param auszuführen.

Der CALL WORKER bindet Param in eine Meldung ein und setzt sie in die Nachrichtenbox des Worker. Weitere Informationen dazu finden Sie im Abschnitt Über Worker.

Im Parameter Prozess können Sie den Worker über seinen Prozessnamen oder seine Prozessnummer angeben:

  • Übergeben Sie die Nummer eines Prozesses, der nicht existiert oder wurde der Prozess weder mit CALL WORKER noch von 4D selbst erstellt (so wie der Hauptanwendungsprozess), führt CALL WORKER nichts aus.
  • Übergeben Sie den Namen eines Prozesses, der nicht existiert, wird ein neuer Worker Prozess erstellt.

Hinweise:

  • Namen für Worker Prozesse berücksichtigen Groß- und Kleinschreibung.
  • Der Hauptprozess, den 4D beim Öffnen einer Anwendung für die Benutzeroberfläche und den Anwendungsmodus erstellt, ist ein Worker Prozess. Er lässt sich über CALL WORKER aufrufen. Da sein Name jedoch je nach der 4D Programmiersprache variieren kann, empfehlen wir, diesen mit CALL WORKER über seine Nummer (immer 1) aufzurufen.

Der Worker Prozess erscheint in der Prozessliste des Runtime Explorer und wird vom Befehl PROCESS PROPERTIES zurückgegeben, wenn er auf diesen Prozess angewendet wird.

In Methode übergeben Sie den Namen der Projektmethode, die im Kontext des Worker Prozesses ausgeführt werden soll. Der Parameter Methode kann ein leerer String sein. In diesem Fall führt der Worker die Methode aus, die ursprünglich zum Starten ihres Prozesses, sofern vorhanden, verwendet wurde (z.B. die Start Methode des Worker).

Hinweis: Methode muss immer angegeben werden, wenn der Befehl den Hauptprozess (Prozessnummer 1) aufruft, da er nicht über eine Projektmethode gestartet wurde. Deshalb führt CALL WORKER (1;"") nichts aus.

In Param können Sie einen oder mehrere Parameter für Methode übergeben. Das funktioniert genauso wie Parameter für eine Unterroutine übergeben, siehe Abschnitt Parameter in Methoden . Beim Starten der Ausführung im Rahmen des Prozesses empfängt die Prozessmethode die Parameterwerte in $1, $2, etc. Beachten Sie auch, dass sich Arrays nicht als Parameter für eine Methode übergeben lassen. Außerdem müssen Sie für den Befehl CALL WORKER folgendes beachten:

  • Zeiger auf Tabellen oder Felder sind erlaubt.
  • Zeiger auf Variablen, insbesondere lokale und Prozessvariablen werden nicht empfohlen, da sie zum Zeitpunkt, wo die Prozessmethode auf sie zugreift, undefiniert sein können.
  • Übergeben Sie einen Parameter vom Typ Objekt, erstellt 4D im Zielprozess eine Kopie des Objekts, wenn der Worker nicht in dem Prozess liegt, den der Befehl CALL WORKER aufruft.
Ein Worker Prozess bleibt am Leben, bis die Anwendung geschlossen oder explizit der Befehl KILL WORKER aufgerufen wird. Rufen Sie diesen Befehl auf, wenn ein Worker Prozess nicht mehr benötigt wird, denn damit sparen Sie Speicherplatz.

Eine Schaltfläche im Formular löst eine Berechnung aus, z.B. Statistiken zum ausgewählten Jahr. Die Schaltfläche erstellt oder ruft einen Worker Prozess auf, der Daten berechnet, während der Benutzer im Formular weiterarbeiten kann.

Die Methode für die Schaltfläche lautet:

  //Den Worker vWorkerName mit dem Parameter
 C_LONGINT(vYear)aufrufen
 vYear:=2015 // Mögliche Benutzerauswahl im Formular
 CALL WORKER("myWorker";"workerMethod";vYear;Current form window)

Der Code von workerMethod ist:

  // Das ist die Methode des Worker
  // Sie kann preemptive oder kooperativ sein
 C_LONGINT($1//erhält das Jahr
 C_LONGINT($2//erhält die Referenz des Fensters
 C_OBJECT(vStatResults//zum Speichern von Ergebnissen von Statistiken
 ... //Statistik berechnen
  //nach Beenden das Formular mit berechneten Werten zurückrufen
  //vStatResults kann Ergebnisse im Formular anzeigen
 CALL FORM($2;"displayStats";vStatResults)



Siehe auch 

CALL FORM
Current process name
KILL WORKER
Über Worker

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Prozess (Kommunikation)
Nummer: 1389

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v15 R5

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)