Condividi tramite


ILock.LockInterruptibly Metodo

Definizione

Acquisisce il blocco a meno che il thread corrente non sia Thread#interrupt interrotto.

[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void LockInterruptibly ();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member LockInterruptibly : unit -> unit
Attributi

Eccezioni

se il thread corrente viene interrotto durante l'acquisizione del blocco (e l'interruzione dell'acquisizione del blocco è supportata)

Commenti

Acquisisce il blocco a meno che il thread corrente non sia Thread#interrupt interrotto.

Acquisisce il blocco se disponibile e restituisce immediatamente.

Se il blocco non è disponibile, il thread corrente diventa disabilitato per scopi di pianificazione dei thread e giace inattivo fino a quando non si verifica una delle due cose seguenti:

<ul><li>Il blocco viene acquisito dal thread corrente; o <li>Altri thread Thread#interrupt interrompe il thread corrente e l'interruzione dell'acquisizione del blocco è supportata. </ul>

Se il thread corrente: <ul><li>ha lo stato interrotto impostato sulla voce di questo metodo; o <li>è Thread#interrupt interrotto durante l'acquisizione del blocco e l'interruzione dell'acquisizione del blocco è supportata, </ul> viene InterruptedException generato e lo stato interrotto del thread corrente viene cancellato.

<b>Considerazioni sull'implementazione</b>

La possibilità di interrompere un'acquisizione di blocco in alcune implementazioni potrebbe non essere possibile e, se possibile, potrebbe essere un'operazione costosa. Il programmatore deve tenere presente che questo può essere il caso. Un'implementazione deve documentare quando si tratta del caso.

Un'implementazione può favorire la risposta a un interrupt rispetto alla normale restituzione del metodo.

Un'implementazione Lock può essere in grado di rilevare un uso errato del blocco, ad esempio una chiamata che causerebbe deadlock e potrebbe generare un'eccezione (deselezionata) in tali circostanze. Le circostanze e il tipo di eccezione devono essere documentati da tale Lock implementazione.

Documentazione java per java.util.concurrent.locks.Lock.lockInterruptibly().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a