Monitor.PulseAll(Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Benachrichtigt alle wartenden Threads einer Änderung im 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 nicht die Sperre für das angegebene Objekt.
Hinweise
Der Thread, der derzeit die Sperre für das angegebene Objekt besitzt, ruft diese Methode auf, um alle Threads zu signalisieren, die auf das Abrufen der Sperre für das Objekt warten. Nachdem das Signal gesendet wurde, werden die wartenden Threads in die bereite Warteschlange verschoben. Wenn der aufgerufene PulseAll Thread die Sperre loslässt, 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 Threads enthält, die zum Abrufen der Sperre bereit sind, und einen Verweis auf die Wartewarteschlange, die die Threads enthält, die auf eine Benachrichtigung über eine Änderung im Zustand des Objekts warten.
Die Pulse Methoden, PulseAll Methoden und Wait Methoden müssen innerhalb eines synchronisierten Codeblocks aufgerufen werden.
In den Hinweisen für die Pulse-Methode wird erläutert, was passiert, wenn Pulse aufgerufen wird, während keine Threads warten.
Verwenden Sie die Pulse Methode, um einen einzelnen Thread zu signalisieren.