CyclicBarrier.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() |
Aguarda até que todas as partes #getParties tenham invocado |
| Await(Int64, TimeUnit) |
Aguarda até que todas as partes #getParties tenham invocado |
Await()
Aguarda até que todas as partes #getParties tenham invocado await essa barreira.
[Android.Runtime.Register("await", "()I", "GetAwaitHandler")]
public virtual int Await();
[<Android.Runtime.Register("await", "()I", "GetAwaitHandler")>]
abstract member Await : unit -> int
override this.Await : unit -> int
Retornos
o índice de chegada do thread atual, em que o índice getParties() - 1 indica o primeiro a chegar e zero indica o último a chegar
- Atributos
Exceções
se o thread atual foi interrompido durante a espera
se outro thread foi interrompido ou atingiu o tempo limite enquanto o thread atual estava aguardando, ou a barreira foi redefinida, ou a barreira foi interrompida quando await foi chamada ou a ação de barreira (se presente) falhou devido a uma exceção
Comentários
Aguarda até que todas as partes #getParties tenham invocado await essa barreira.
Se o thread atual não for o último a chegar, ele será desabilitado para fins de agendamento de thread e fica inativo até que uma das seguintes coisas aconteça: ul>li O último thread chega; ou <li>Algum outro thread#interrupção interrompe o thread atual; ou <li>Algum outro thread Thread#interrompe um dos outros threads de espera; ou <li>Algum outro thread atinge o tempo limite enquanto aguarda barreira; ou <li>Algum outro thread><<#reset invoca nessa barreira.
</ul>
Se o thread atual: <ul><li>tem seu status interrompido definido na entrada para este método; ou <li>é Thread#interrupt interrompido enquanto espera </ul> , em seguida, InterruptedException é gerado e o status interrompido do thread atual é limpo.
Se a barreira estiver #reset enquanto qualquer thread estiver aguardando ou se a barreira #isBroken estiver quebrada quando await for invocada ou enquanto qualquer thread estiver aguardando, será BrokenBarrierException lançada.
Se qualquer thread for Thread#interrupt interrompido durante a espera, todos os outros threads de espera serão lançados BrokenBarrierException e a barreira será colocada no estado quebrado.
Se o thread atual for o último thread a chegar e uma ação de barreira não nula tiver sido fornecida no construtor, o thread atual executará a ação antes de permitir que os outros threads continuem. Se ocorrer uma exceção durante a ação de barreira, essa exceção será propagada no thread atual e a barreira será colocada no estado desfeito.
Java documentação para java.util.concurrent.CyclicBarrier.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)
Aguarda até que todas as partes #getParties tenham invocado await essa barreira ou o tempo de espera especificado decorrido.
[Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)I", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual int Await(long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)I", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member Await : int64 * Java.Util.Concurrent.TimeUnit -> int
override this.Await : int64 * Java.Util.Concurrent.TimeUnit -> int
Parâmetros
- timeout
- Int64
o tempo para esperar pela barreira
- unit
- TimeUnit
a unidade de tempo limite do parâmetro de tempo limite
Retornos
o índice de chegada do thread atual, em que o índice getParties() - 1 indica o primeiro a chegar e zero indica o último a chegar
- Atributos
Exceções
se o thread atual foi interrompido durante a espera
se o tempo limite especificado tiver decorrido
se outro thread foi interrompido ou atingiu o tempo limite enquanto o thread atual estava aguardando, ou a barreira foi redefinida, ou a barreira foi interrompida quando await foi chamada ou a ação de barreira (se presente) falhou devido a uma exceção
Comentários
Aguarda até que todas as partes #getParties tenham invocado await essa barreira ou o tempo de espera especificado decorrido.
Se o thread atual não for o último a chegar, ele será desabilitado para fins de agendamento de thread e fica inativo até que uma das seguintes coisas aconteça: ul>li O último thread chega; ou <li>O tempo limite especificado decorrido; ou <li>Algum outro thread Thread#interrupt interrompe o thread atual; ou <li>Alguma outra interrupção thread#thread interrompe um dos outros threads de espera; ou <li>><<Algum outro thread atinge o tempo limite enquanto aguarda a barreira; ou <li>Algumas outras invocações #reset de thread nessa barreira.
</ul>
Se o thread atual: <ul><li>tem seu status interrompido definido na entrada para este método; ou <li>é Thread#interrupt interrompido enquanto espera </ul> , em seguida, InterruptedException é gerado e o status interrompido do thread atual é limpo.
Se o tempo de espera especificado estiver decorrido, será TimeoutException gerado. Se o tempo for menor ou igual a zero, o método não aguardará nada.
Se a barreira estiver #reset enquanto qualquer thread estiver aguardando ou se a barreira #isBroken estiver quebrada quando await for invocada ou enquanto qualquer thread estiver aguardando, será BrokenBarrierException lançada.
Se qualquer thread for Thread#interrupt interrompido durante a espera, todos os outros threads de espera serão lançados BrokenBarrierException e a barreira será colocada no estado quebrado.
Se o thread atual for o último thread a chegar e uma ação de barreira não nula tiver sido fornecida no construtor, o thread atual executará a ação antes de permitir que os outros threads continuem. Se ocorrer uma exceção durante a ação de barreira, essa exceção será propagada no thread atual e a barreira será colocada no estado desfeito.
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.