ICondition.Await Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| Await() |
Hace que el subproceso actual espere hasta que se indique o se interrumpa Thread#interrupt. |
| Await(Int64, TimeUnit) |
Hace que el subproceso actual espere hasta que se señale o se interrumpa, o el tiempo de espera especificado transcurre. |
Await()
Hace que el subproceso actual espere hasta que se indique o se interrumpa Thread#interrupt.
[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
- Atributos
Excepciones
si se interrumpe el subproceso actual (y se admite la interrupción de la suspensión del subproceso)
Comentarios
Hace que el subproceso actual espere hasta que se indique o se interrumpa Thread#interrupt.
El bloqueo asociado a esto Condition se libera atómicamente y el subproceso actual se deshabilita para fines de programación de subprocesos y se encuentra inactivo hasta <que se produzcan em>uno</em> de cuatro cosas: <ul><li>Otros subprocesos invocan el #signal método para esto Condition y el subproceso actual se elige como subproceso que se va a despertar; o <li>Otros subprocesos invocan el #signalAll método para este Condition; o <li>Otros subprocesos Thread#interrupt interrumpen el subproceso actual y se admite la interrupción de la suspensión del subproceso; o <li>A "<em>espurios wakeup</em>" se produce.
</ul>
En todos los casos, antes de que este método pueda devolver el subproceso actual debe volver a adquirir el bloqueo asociado a esta condición. Cuando el subproceso devuelve, se <>garantiza</em> para mantener este bloqueo.
Si el subproceso actual: ul<li tiene su estado interrumpido establecido en la entrada a este método; o >li<es Thread#interrupt interrumpida mientras se admite la espera e interrupción de la suspensión del subproceso, >se produce /ul <> y se borra el estado interrumpido del subproceso actual.<>InterruptedException No se especifica, en el primer caso, si se produce o no la prueba de interrupción antes de que se libere el bloqueo.
<b>Consideraciones de< implementación/b>
Se supone que el subproceso actual contiene el bloqueo asociado a este Condition cuando se llama a este método. Es necesario que la implementación determine si este es el caso y, si no es así, cómo responder. Normalmente, se producirá una excepción (como IllegalMonitorStateException) y la implementación debe documentar ese hecho.
Una implementación puede favorecer la respuesta a una interrupción sobre el retorno del método normal en respuesta a una señal. En ese caso, la implementación debe asegurarse de que la señal se redirige a otro subproceso en espera, si hay uno.
Documentación de Java para java.util.concurrent.locks.Condition.await().
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Se aplica a
Await(Int64, TimeUnit)
Hace que el subproceso actual espere hasta que se señale o se interrumpa, o el tiempo de espera especificado transcurre.
[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
Parámetros
- time
- Int64
tiempo máximo de espera
- unit
- TimeUnit
la unidad de tiempo del time argumento
Devoluciones
false si el tiempo de espera transcurrido de forma detectable antes de volver desde el método , en caso contrario true
- Atributos
Excepciones
si se interrumpe el subproceso actual (y se admite la interrupción de la suspensión del subproceso)
Comentarios
Hace que el subproceso actual espere hasta que se señale o se interrumpa, o el tiempo de espera especificado transcurre. Este método es equivalente a:
{@code awaitNanos(unit.toNanos(time)) > 0}
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.