ICondition.Await 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.
Ü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}
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.