Object.Wait 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 |
|---|---|
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. |
Wait()
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>
[Android.Runtime.Register("wait", "()V", "")]
public void Wait();
[<Android.Runtime.Register("wait", "()V", "")>]
member this.Wait : unit -> unit
- Atributos
Excepciones
si el subproceso que llama a este método no es el propietario del monitor de este objeto.
si se ha interrumpido el subproceso actual. El estado interrumpido del subproceso actual se borrará antes de que se produzca la excepción.
Comentarios
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>
En todos los aspectos, este método se comporta como si wait(0L, 0) se hubiera llamado. Consulte la especificación del #wait(long, int) método para obtener más información.
Java documentación para java.lang.Object.wait().
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.
Consulte también
- Notify()
- NotifyAll()
- Wait(Int64)
- <xref:Java.Lang.Object.Wait(System.Int64%2c+System.Int32)>
- Thread
Se aplica a
Wait(Int64)
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.
[Android.Runtime.Register("wait", "(J)V", "")]
public void Wait(long timeoutMillis);
[<Android.Runtime.Register("wait", "(J)V", "")>]
member this.Wait : int64 -> unit
Parámetros
- timeoutMillis
- Int64
tiempo máximo de espera, en milisegundos
- Atributos
Excepciones
si millis .
si el subproceso que llama a este método no es el propietario del monitor de este objeto.
si se ha interrumpido el subproceso actual. El estado interrumpido del subproceso actual se borrará antes de que se produzca la excepción.
Comentarios
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.
En todos los aspectos, este método se comporta como si wait(timeoutMillis, 0) se hubiera llamado. Consulte la especificación del #wait(long, int) método para obtener más información.
Java documentación para java.lang.Object.wait(long).
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.
Consulte también
- Notify()
- NotifyAll()
- Wait()
- <xref:Java.Lang.Object.Wait(System.Int64%2c+System.Int32)>
- Thread
Se aplica a
Wait(Int64, Int32)
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.
[Android.Runtime.Register("wait", "(JI)V", "")]
public void Wait(long timeoutMillis, int nanos);
[<Android.Runtime.Register("wait", "(JI)V", "")>]
member this.Wait : int64 * int -> unit
Parámetros
- timeoutMillis
- Int64
tiempo máximo de espera, en milisegundos
- nanos
- Int32
tiempo adicional, en nanosegundos, en el intervalo de 0 a 9999999 inclusive
- Atributos
Excepciones
si millis , nanos o nanos >
999999.
si el subproceso que llama a este método no es el propietario del monitor de este objeto.
si se ha interrumpido el subproceso actual. El estado interrumpido del subproceso actual se borrará antes de que se produzca la excepción.
Comentarios
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.
El subproceso actual debe poseer el bloqueo de monitor de este objeto. Consulte el #notify notify método para obtener una descripción de las formas en que un subproceso puede convertirse en el propietario de un bloqueo de monitor.
Este método hace que el subproceso actual (que se conoce aquí como <var>T</var>) se coloque en el conjunto de espera para este objeto y, a continuación, renunciar a todas las notificaciones de sincronización en este objeto. Tenga en cuenta que solo se renuncian a los bloqueos de este objeto; cualquier otro objeto en el que se pueda sincronizar el subproceso actual permanece bloqueado mientras el subproceso espera.
A continuación, el subproceso var T/var< se deshabilita con fines de programación de subprocesos y permanece inactivo hasta que se produce uno de los siguientes casos: >ul<>li<Otros subprocesos invocan el > método para este objeto y <el subproceso var>Tnotify/var< se elige arbitrariamente como subproceso que se va a despertar.><>
<li>Otros subprocesos invocan el notifyAll método para este objeto.
<li>Otros subprocesos Thread#interrupt() interrumpen el subproceso <var>T</var>.
<li>La cantidad especificada de tiempo real ha transcurrido, más o menos. La expresión da 1000000 * timeoutMillis + nanosla cantidad de tiempo real, en nanosegundos, . Si timeoutMillis y nanos son cero, no se tiene en cuenta el tiempo real y el subproceso espera hasta que uno de los otros provoca.
<li>Thread <var>T</var> se despierta falsamente. (Consulte a continuación). </ul>
A continuación, el subproceso <var>T</var> se quita del conjunto de espera para este objeto y se vuelve a habilitar para la programación de subprocesos. Compite de la manera habitual con otros subprocesos para que el derecho se sincronice en el objeto; una vez que ha recuperado el control del objeto, todas sus notificaciones de sincronización en el objeto se restauran al status quo ante , es decir, a la situación a partir del momento en que se invocó el wait método. A continuación, el subproceso <var>T</var> devuelve de la invocación del wait método . Por lo tanto, al devolver el wait método, el estado de sincronización del objeto y del subproceso T es exactamente como era cuando se invocó el wait método.
Un subproceso puede reactivarse sin recibir notificaciones, interrumpirse o agotar el tiempo de espera, una llamada reactivación <><falsa/em.> Aunque esto rara vez se producirá en la práctica, las aplicaciones deben protegerse contra ella probando la condición que debe haber provocado que el subproceso se despierte y continúe esperando si no se cumple la condición. Consulte el ejemplo siguiente.
Para obtener más información sobre este tema, vea la sección 14.2, "Colas de condiciones", en Brian Goetz y otros em <>Java Simultaneidad en Practice</em> (Addison-Wesley, 2006) o el artículo 69 en Joshua Bloch's <em>Effective Java, Second Edition</em> (Addison-Wesley, 2008).
Si el subproceso actual es java.lang.Thread#interrupt() interrumpido por cualquier subproceso antes o mientras está esperando, se produce una InterruptedException excepción . El <estado>< de interrupción em>del subproceso actual se borra cuando se produce esta excepción. Esta excepción no se produce hasta que se haya restaurado el estado de bloqueo de este objeto como se describió anteriormente.
Java documentación para java.lang.Object.wait(long, int).
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.
Consulte también
- Notify()
- NotifyAll()
- Wait()
- <xref:Java.Lang.Object.Wait(System.Int64%2c+System.Int32)>
- Thread