Freigeben über


Monitor.PulseAll(Object) Methode

Definition

Benachrichtigt alle wartenden Threads über eine Änderung am Zustand des Objekts.

public:
 static void PulseAll(System::Object ^ obj);
public static void PulseAll (object obj);
static member PulseAll : obj -> unit
Public Shared Sub PulseAll (obj As Object)

Parameter

obj
Object

Das Objekt, das den Impuls sendet.

Ausnahmen

Der obj-Parameter ist null.

Der aufrufende Thread besitzt keine Sperre für das angegebene Objekt.

Hinweise

Der Thread, der derzeit die Sperre auf dem angegebenen Objekt besitzt, ruft diese Methode auf, um alle Threads zu signalisieren, die auf das Abrufen der Sperre im Objekt warten. Nachdem das Signal gesendet wurde, werden die wartenden Threads in die bereite Warteschlange verschoben. Wenn der aufgerufene PulseAll Thread die Sperre veröffentlicht hat, erhält der nächste Thread in der bereiten Warteschlange die Sperre.

Beachten Sie, dass ein synchronisiertes Objekt mehrere Verweise enthält, einschließlich eines Verweises auf den Thread, der derzeit die Sperre enthält, einen Verweis auf die bereite Warteschlange, die die Sperre erhält, und einen Verweis auf die Wartezeit, die die Threads enthält, die auf die Benachrichtigung einer Änderung im Zustand des Objekts warten.

Die PulseMethoden und PulseAllWait Methoden müssen innerhalb eines synchronisierten Codes aufgerufen werden.

Die Hinweise für die Pulse Methode erläutern, was geschieht, wenn Pulse keine Threads warten.

Um einen einzelnen Thread zu signalisieren, verwenden Sie die Pulse Methode.

Gilt für

Siehe auch