Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20.6
New signal

New signal 


 

New signal {( description )} -> Funktionsergebnis 
Parameter Typ   Beschreibung
description  Text in Beschreibung des Signals
Funktionsergebnis  Objekt in Native Objekt mit dem Signal

Der Befehl New signal erstellt ein Objekt signal.

Ein Signal ist ein shared object, das als Parameter eines Workers oder Prozesses an einen anderen übergeben werden kann, so dass:

  • der aufgerufene Worker/Prozess das Objekt Signal aktualisiert, wenn eine spezifische Bearbeitung abgeschlossen ist
  • der aufrufende Worker/Prozess die Ausführung stoppt und wartet, bis das Signal aktualisiert ist, ohne Verbrauch einer CPU Resssource. 

Optional können Sie im Parameter description einen eigenen Text zum Beschreiben des Signals eingeben. Dieser Text lässt sich auch nach dem Erstellen des Signals definieren.

Da das Objekt signal ein shared object ist (siehe Shared Objects und Shared Collections), kann es über Use...End use auch für eigene Eigenschaften, sowie die Eigenschaft signal.description verwendet werden.

Zurückgegebener Wert

Das Objekt signal enthält folgende Eigenschaften:

EigenschaftTypBeschreibung
signal.signaledBoolean(read-only Eigenschaft) falsch beim Erstellen des Signals. Wird wahr beim Aufrufen der Methode signal.trigger( ).
signal.descriptionTextEigene Beschreibung des Signals, wenn vorhanden

MethodeBeschreibung
signal.wait( )MethodeWarten auf das Signal (Aufrufen von Prozess/Worker)
signal.trigger( )MethodeAuslösen des Signals (Aufgerufener Prozess/Worker)

Hier sehen Sie ein typisches Beispiel eines Workers, der ein Signal setzt:

 C_OBJECT($signal)
 $signal:=New signal("Dies ist mein erstes Signal")
 CALL WORKER("myworker";"doSomething";$signal)
 $signaled:=$signal.wait(1) //max. 1 Sekunde warten
 If($signaled)
    ALERT("myworker hat die Arbeit beendet. Ergebnis: "+$signal.myresult)
 Else
    ALERT("myworker hat nicht unter 1 sek. beendet")
 End if

Die Methode "doSomething" könnte lauten:

 C_OBJECT($1)
  //Bearbeitung
  //...
 Use($1)
    $1.myresult:=$processingResult  //Ergebnis zurückgeben
 End use
 $1.trigger() // Die Arbeit ist beendet



Siehe auch 

signal.description
signal.signaled
signal.trigger( )
signal.wait( )

 
EIGENSCHAFTEN 

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

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v17 R4

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20)
4D Programmiersprache ( 4D v20.1)
4D Programmiersprache ( 4D v20.2)
4D Programmiersprache ( 4D v20.3)
4D Programmiersprache ( 4D v20.4)
4D Programmiersprache ( 4D v20.5)
4D Programmiersprache ( 4D v20.6)