ILock.LockInterruptibly 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
除非目前線程中斷線程中斷,否則會取得鎖定。
[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
- 屬性
例外狀況
如果目前線程在取得鎖定時中斷(且支援鎖定擷取中斷)
備註
除非目前線程中斷線程中斷,否則會取得鎖定。
如果鎖定可供使用,並立即傳回,則取得鎖定。
如果鎖定無法使用,則目前的線程會因線程排程目的而停用,並處於休眠狀態,直到發生下列兩件事之一:
<ul><li>鎖定是由目前線程取得;或 <li>其他線程 Thread#interrupt 中斷中斷目前線程,並支援鎖定擷取中斷。 </ul>
如果目前線程: <ul><li>在進入此方法時已設定其中斷狀態;或 <li>是在取得鎖定時中斷的 Thread#interrupt,而且支援鎖定擷取中斷, <則會擲回 /ul> , InterruptedException
並清除目前線程的中斷狀態。
<b>實作考慮</b>
某些實作中中斷鎖定擷取的能力可能是不可能的,如果可能的話,可能是昂貴的作業。 程序設計人員應該注意,這可能是這樣。 實作應該記載這種情況。
實作可能有利於響應中斷,而比正常方法傳回。
實 Lock
作可能會偵測錯誤使用鎖定,例如會導致死結的調用,而且在這種情況下可能會擲回(未核取)例外狀況。 情況和例外狀況類型必須由該 Lock
實作記載。
的 java.util.concurrent.locks.Lock.lockInterruptibly()
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。