ICondition.Await Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| Await() |
Provoque l’interruption du thread actuel jusqu’à ce qu’il soit signalé ou interruption thread#. |
| Await(Int64, TimeUnit) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit signalé ou interrompu, ou que le temps d’attente spécifié s’écoule. |
Await()
Provoque l’interruption du thread actuel jusqu’à ce qu’il soit signalé ou interruption thread#.
[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
- Attributs
Exceptions
si le thread actuel est interrompu (et que l’interruption de la suspension de thread est prise en charge)
Remarques
Provoque l’interruption du thread actuel jusqu’à ce qu’il soit signalé ou interruption thread#.
Le verrou associé à ceci Condition est libéré atomiquement et le thread actuel devient désactivé à des fins de planification de threads et se trouve dormant jusqu’à <ce que em one>/em<> de quatre choses se produisent : <ul><li li>Un autre thread appelle la #signal méthode pour cela Condition et le thread actuel est choisi comme thread à réveiller ; ou <li>Un autre thread appelle la #signalAll méthode pour cela Condition; ou <li li>D’autres threads thread#interruption interrompent le thread actuel et l’interruption de la suspension de thread est prise en charge ; ou <li>A "<em>spurious wakeup</em>" se produit.
</ul>
Dans tous les cas, avant que cette méthode puisse retourner le thread actuel, vous devez réinscrire le verrou associé à cette condition. Lorsque le thread retourne, il est <garanti></em> de contenir ce verrou.
Si le thread actuel : <ul><li>a son état interrompu défini sur l’entrée de cette méthode ; ou <li>est interruption thread#interruption lors de l’attente et l’interruption de la suspension de thread est prise en charge, </ul> est levée et InterruptedException l’état interrompu du thread actuel est effacé. Elle n’est pas spécifiée, dans le premier cas, si le test d’interruption se produit avant la libération du verrou.
<b>Considérations relatives< à l’implémentation/b>
Le thread actuel est supposé contenir le verrou associé à cette Condition méthode lorsque cette méthode est appelée. Il incombe à l’implémentation de déterminer si c’est le cas et si ce n’est pas le cas, comment répondre. En règle générale, une exception est levée (par exemple IllegalMonitorStateException) et l’implémentation doit documenter ce fait.
Une implémentation peut favoriser la réponse à une interruption par rapport à une méthode normale en réponse à un signal. Dans ce cas, l’implémentation doit s’assurer que le signal est redirigé vers un autre thread en attente, s’il en existe un.
Java documentation pour java.util.concurrent.locks.Condition.await().
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
S’applique à
Await(Int64, TimeUnit)
Provoque l’attente du thread actuel jusqu’à ce qu’il soit signalé ou interrompu, ou que le temps d’attente spécifié s’écoule.
[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
Paramètres
- time
- Int64
durée maximale d’attente
- unit
- TimeUnit
unité de temps de l’argument time
Retours
false si le temps d’attente s’est écoulé de façon détectable avant le retour de la méthode, sinon true
- Attributs
Exceptions
si le thread actuel est interrompu (et que l’interruption de la suspension de thread est prise en charge)
Remarques
Provoque l’attente du thread actuel jusqu’à ce qu’il soit signalé ou interrompu, ou que le temps d’attente spécifié s’écoule. Cette méthode est équivalente au comportement suivant :
{@code awaitNanos(unit.toNanos(time)) > 0}
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.