AbstractInterruptibleChannel 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
可中斷通道的基底實作類別。
[Android.Runtime.Register("java/nio/channels/spi/AbstractInterruptibleChannel", DoNotGenerateAcw=true)]
public abstract class AbstractInterruptibleChannel : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IInterruptibleChannel
[<Android.Runtime.Register("java/nio/channels/spi/AbstractInterruptibleChannel", DoNotGenerateAcw=true)>]
type AbstractInterruptibleChannel = class
inherit Object
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IInterruptibleChannel
- 繼承
- 衍生
- 屬性
- 實作
備註
可中斷通道的基底實作類別。
這個類別會封裝實作通道異步關閉和中斷所需的低階機械。 具體通道類別必須在 #begin begin
叫用 和 #end end
方法之前和之後,分別叫用可能會無限期封鎖的 I/O 作業。 為了確保 #end end
一律叫用 方法,這些方法應該在 try
... finally
塊:
<blockquote>
boolean completed = false;
try {
begin();
completed = ...; // Perform blocking I/O operation
return ...; // Return result
} finally {
end(completed);
}
</blockquote>
completed
方法的#end end
自變數會指出 I/O 作業是否已實際完成,也就是說,它是否有任何作用,對叫用者來說是否可見。 例如,如果是讀取位元組的作業,則這個自變數應該是 true
,而且只有在某些位元組實際傳送到叫用者的目標緩衝區時。
具體通道類別也必須 #implCloseChannel implCloseChannel
實作 方法,如此一來,如果在通道上的原生 I/O 作業中封鎖另一個線程時叫用此方法,則該作業會藉由擲回例外狀況或正常傳回來立即傳回。 如果線程中斷或封鎖的通道以異步方式關閉,則通道的 #end end
方法會擲回適當的例外狀況。
這個類別會執行實作 java.nio.channels.Channel
規格所需的同步處理。 方法的實作 #implCloseChannel implCloseChannel
不需要與其他可能嘗試關閉通道的線程同步處理。
已在1.4中新增。
的 java.nio.channels.spi.AbstractInterruptibleChannel
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
AbstractInterruptibleChannel() |
初始化這個類別的新執行個體。 |
AbstractInterruptibleChannel(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
IsOpen |
如果這個通道已開啟,則傳回 true。 |
JniIdentityHashCode |
可中斷通道的基底實作類別。 (繼承來源 Object) |
JniPeerMembers |
可中斷通道的基底實作類別。 |
PeerReference |
可中斷通道的基底實作類別。 (繼承來源 Object) |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
Begin() |
標記可能會無限期封鎖的 I/O 作業開頭。 |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Close() |
關閉此通道。 |
Dispose() |
可中斷通道的基底實作類別。 (繼承來源 Object) |
Dispose(Boolean) |
可中斷通道的基底實作類別。 (繼承來源 Object) |
End(Boolean) |
標記可能會無限期封鎖的 I/O 作業結尾。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
ImplCloseChannel() |
關閉此通道。 |
JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
可中斷通道的基底實作類別。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
可中斷通道的基底實作類別。 (繼承來源 Object) |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
可中斷通道的基底實作類別。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
可中斷通道的基底實作類別。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
可中斷通道的基底實作類別。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
可中斷通道的基底實作類別。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
可中斷通道的基底實作類別。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
可中斷通道的基底實作類別。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
可中斷通道的基底實作類別。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
可中斷通道的基底實作類別。 |
GetJniTypeName(IJavaPeerable) |
可中斷通道的基底實作類別。 |