ICondition.Await Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| Await() |
Faz com que o thread atual aguarde até que ele seja sinalizado ou a interrupção do Thread#interrupt. |
| Await(Int64, TimeUnit) |
Faz com que o thread atual aguarde até ser sinalizado ou interrompido ou o tempo de espera especificado decorrido. |
Await()
Faz com que o thread atual aguarde até que ele seja sinalizado ou a interrupção do 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
Exceções
se o thread atual for interrompido (e houver suporte para a interrupção da suspensão de thread)
Comentários
Faz com que o thread atual aguarde até que ele seja sinalizado ou a interrupção do Thread#interrupt.
O bloqueio associado a isso Condition é liberado atomicamente e o thread atual fica desabilitado para fins de agendamento de thread e fica inativo até <que um<>/em> de quatro coisas aconteça: <ul<>li>Algum outro thread invoca o #signal método para isso Condition e o thread atual passa a ser escolhido como o thread a ser despertado; ou <li>Algum outro thread invoca o #signalAll método para issoCondition; ou <li>Alguns outros threads#interrupt interrompem o thread atual e há suporte para a interrupção da suspensão de thread; ou <li>A "<ocorre em>wakeup</em>" espúrio.
</ul>
Em todos os casos, antes que esse método possa retornar, o thread atual deve adquirir novamente o bloqueio associado a essa condição. Quando o thread retorna, ele é <>garantido</em> para manter esse bloqueio.
Se o thread atual: <ul><li>tem seu status interrompido definido na entrada para este método; ou <li>é thread#interrupção interrompida enquanto espera e interrupção da suspensão de thread é suportado, </ul> então InterruptedException é gerado e o status interrompido do thread atual é limpo. Não é especificado, no primeiro caso, se o teste para interrupção ocorre ou não antes do bloqueio ser liberado.
<b>Considerações< de implementação/b>
Supõe-se que o thread atual mantenha o bloqueio associado a isso Condition quando esse método é chamado. Cabe à implementação determinar se esse é o caso e, se não, como responder. Normalmente, uma exceção será gerada (como IllegalMonitorStateException) e a implementação deve documentar esse fato.
Uma implementação pode favorecer a resposta a uma interrupção sobre o retorno do método normal em resposta a um sinal. Nesse caso, a implementação deve garantir que o sinal seja redirecionado para outro thread de espera, se houver um.
Documentação Java para java.util.concurrent.locks.Condition.await().
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
Await(Int64, TimeUnit)
Faz com que o thread atual aguarde até ser sinalizado ou interrompido ou o tempo de espera especificado decorrido.
[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
o tempo máximo de espera
- unit
- TimeUnit
a unidade de tempo do time argumento
Retornos
false se o tempo de espera tiver decorrido detectavelmente antes de retornar do método, caso contrário, true
- Atributos
Exceções
se o thread atual for interrompido (e houver suporte para a interrupção da suspensão de thread)
Comentários
Faz com que o thread atual aguarde até ser sinalizado ou interrompido ou o tempo de espera especificado decorrido. Esse método é comportamentalmente equivalente a:
{@code awaitNanos(unit.toNanos(time)) > 0}
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.