Linguaggio

ICondition.Await Metodo

Definizione

Overload

Nome Descrizione
Await()

Fa sì che il thread corrente attenda finché non viene segnalato o thread#interrupt interrotto.

Await(Int64, TimeUnit)

Fa sì che il thread corrente attenda finché non viene segnalato o interrotto o trascorso il tempo di attesa specificato.

Await()

Fa sì che il thread corrente attenda finché non viene segnalato o thread#interrupt interrotto.

[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
Attributi

Eccezioni

se il thread corrente viene interrotto (e l'interruzione della sospensione del thread è supportata)

Commenti

Fa sì che il thread corrente attenda finché non viene segnalato o thread#interrupt interrotto.

Il blocco associato a questo Condition viene rilasciato in modo atomico e il thread corrente diventa disabilitato per scopi di pianificazione dei thread e giace inattivo fino a <quando non si verifica uno></em> di quattro cose: <ul><li>Altri thread richiamano il #signal metodo per questo Condition e il thread corrente viene scelto come thread da risvegliare; o <li>Altri thread richiamano il #signalAll metodo per questo Condition; o li<>È supportato un altro thread Thread#interrupt che interrompe il thread corrente e l'interruzione della sospensione del thread; o <li>A "<si verifica la>riattivazione</em"> spurio. </ul>

In tutti i casi, prima che questo metodo possa restituire il thread corrente deve acquisire nuovamente il blocco associato a questa condizione. Quando il thread restituisce è <>garantito</em> per contenere questo blocco.

Se il thread corrente: <ul><li>ha lo stato interrotto impostato sulla voce di questo metodo; o <li>è Thread#interrupt interrotto durante l'attesa e l'interruzione della sospensione del thread è supportato, </ul>InterruptedException viene generato e lo stato interrotto del thread corrente viene cancellato. Non viene specificato, nel primo caso, indipendentemente dal fatto che il test per l'interruzione si verifichi prima del rilascio del blocco.

<b>Considerazioni sull'implementazione</b>

Si presuppone che il thread corrente contenga il blocco associato a questo Condition quando viene chiamato questo metodo. Spetta all'implementazione determinare se questo è il caso e, in caso contrario, come rispondere. In genere, verrà generata un'eccezione ( ad esempio IllegalMonitorStateException) e l'implementazione deve documentare tale fatto.

Un'implementazione può favorire la risposta a un interrupt rispetto al normale metodo restituito in risposta a un segnale. In tal caso, l'implementazione deve garantire che il segnale venga reindirizzato a un altro thread in attesa, se presente.

per java.util.concurrent.locks.Condition.await().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

Await(Int64, TimeUnit)

Fa sì che il thread corrente attenda finché non viene segnalato o interrotto o trascorso il tempo di attesa specificato.

[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

Parametri

time
Int64

tempo massimo di attesa

unit
TimeUnit

unità temporale dell'argomento time

Valori restituiti

false se il tempo di attesa è trascorso in modo rilevabile prima della restituzione dal metodo , altrimenti true

Attributi

Eccezioni

se il thread corrente viene interrotto (e l'interruzione della sospensione del thread è supportata)

Commenti

Fa sì che il thread corrente attenda finché non viene segnalato o interrotto o trascorso il tempo di attesa specificato. Questo metodo equivale in modo comportamentale a:

{@code awaitNanos(unit.toNanos(time)) > 0}

per java.util.concurrent.locks.Condition.await(long, java.util.concurrent.TimeUnit).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a