Sprache

ICondition.Await Methode

Definition

Überlädt

Name Beschreibung
Await()

Bewirkt, dass der aktuelle Thread wartet, bis er signalisiert oder Thread#interrupt unterbrochen wird.

Await(Int64, TimeUnit)

Bewirkt, dass der aktuelle Thread wartet, bis er signalisiert oder unterbrochen wird oder die angegebene Wartezeit verstrichen ist.

Await()

Bewirkt, dass der aktuelle Thread wartet, bis er signalisiert oder Thread#interrupt unterbrochen wird.

[Android.Runtime.Register("await", "()V", "GetAwaitHandler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void Await();
[<Android.Runtime.Register("await", "()V", "GetAwaitHandler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Await : unit -> unit
Attribute

Ausnahmen

wenn der aktuelle Thread unterbrochen wird (und Unterbrechung der Threadaufsetzung unterstützt wird)

Hinweise

Bewirkt, dass der aktuelle Thread wartet, bis er signalisiert oder Thread#interrupt unterbrochen wird.

Die damit Condition verbundene Sperre wird atomisch freigegeben, und der aktuelle Thread wird für Threadplanungszwecke deaktiviert und liegt ruhend, bis <em>one</em> von vier Dingen passiert: <ul><li>Ein anderer Thread ruft die #signal Methode dafür Condition auf, und der aktuelle Thread wird als thread ausgewählt, der wach werden soll; oder <li>Einige andere Thread ruft die #signalAll Methode dafür Conditionauf ; oder <li li>Einige andere Thread-Thread#-Interrupt unterbricht den aktuellen Thread, und Unterbrechung der Threadaufsetzung wird unterstützt; oder <li>A "<em>spurious wakeup</em>" tritt auf. </ul>

In allen Fällen muss, bevor diese Methode den aktuellen Thread zurückgeben kann, die mit dieser Bedingung verknüpfte Sperre erneut abrufen. Wenn der Thread zurückgibt, ist <>es garantiert</em>, diese Sperre zu halten.

Wenn der aktuelle Thread: <ul><li>seinen unterbrochenen Status für den Eintrag in dieser Methode festgelegt hat; oder <li>ist Thread#interrupt unterbrochen, während warten und Unterbrechung der Threadaufsetzung unterstützt wird, <wird /ul> dann InterruptedException ausgelöst, und der unterbrochene Status des aktuellen Threads wird gelöscht. Es wird nicht angegeben, im ersten Fall, ob der Test auf Unterbrechung auftritt, bevor die Sperre losgelassen wird.

<b>Überlegungen zur Implementierung</b>

Der aktuelle Thread wird davon ausgegangen, dass die dieser Condition Sperre zugeordnet ist, wenn diese Methode aufgerufen wird. Es liegt an der Implementierung, festzustellen, ob dies der Fall ist und wenn nicht, wie man reagiert. In der Regel wird eine Ausnahme ausgelöst (z IllegalMonitorStateException. B. ) und die Implementierung muss diese Tatsache dokumentieren.

Eine Implementierung kann das Reagieren auf einen Interrupt gegenüber einer normalen Methode als Reaktion auf ein Signal bevorzugen. In diesem Fall muss die Implementierung sicherstellen, dass das Signal an einen anderen Wartethread umgeleitet wird, falls vorhanden.

Java Dokumentation für java.util.concurrent.locks.Condition.await().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Await(Int64, TimeUnit)

Bewirkt, dass der aktuelle Thread wartet, bis er signalisiert oder unterbrochen wird oder die angegebene Wartezeit verstrichen ist.

[Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)Z", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public bool Await(long time, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)Z", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Await : int64 * Java.Util.Concurrent.TimeUnit -> bool

Parameter

time
Int64

die maximale Wartezeit

unit
TimeUnit

die Zeiteinheit des time Arguments

Gibt zurück

false wenn die Wartezeit erkennbar verstrichen ist, bevor sie von der Methode zurückgegeben wird, sonst true

Attribute

Ausnahmen

wenn der aktuelle Thread unterbrochen wird (und Unterbrechung der Threadaufsetzung unterstützt wird)

Hinweise

Bewirkt, dass der aktuelle Thread wartet, bis er signalisiert oder unterbrochen wird oder die angegebene Wartezeit verstrichen ist. Diese Methode entspricht verhaltensmäßig folgenden:

{@code awaitNanos(unit.toNanos(time)) > 0}

Java Dokumentation für java.util.concurrent.locks.Condition.await(long, java.util.concurrent.TimeUnit).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: