共用方式為


ILock.LockInterruptibly 方法

定義

除非目前線程中斷線程中斷,否則會取得鎖定。

[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 屬性授權中所述的詞彙使用。

適用於