IInterruptibleChannel 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個可以非同步閉合和中斷的通道。
[Android.Runtime.Register("java/nio/channels/InterruptibleChannel", "", "Java.Nio.Channels.IInterruptibleChannelInvoker")]
public interface IInterruptibleChannel : IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IChannel
[<Android.Runtime.Register("java/nio/channels/InterruptibleChannel", "", "Java.Nio.Channels.IInterruptibleChannelInvoker")>]
type IInterruptibleChannel = interface
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 衍生
- 屬性
- 實作
備註
一個可以非同步閉合和中斷的通道。
實作此介面的通道是 非同步可關閉的: 若執行緒在可中斷通道的 I/O 操作中被阻塞,則另一執行緒可呼叫該通道的方法 #close close 。 這會導致被封鎖的執行緒收到一個 AsynchronousCloseException。
實作此介面的通道也是 可中斷的: 若執行緒在可中斷通道的 I/O 操作中被阻塞,則另一個執行緒可呼叫該阻塞執行緒的方法 Thread#interrupt() interrupt 。 這會導致通道關閉,阻塞的執行緒接收 ClosedByInterruptException一個 ,並設定阻塞執行緒的中斷狀態。
如果執行緒的中斷狀態已經設定,且對通道呼叫阻塞 I/O 操作,則該通道會被關閉,執行緒會立即接收; ClosedByInterruptException其中斷狀態會保持設定。
通道支援非同步閉合與中斷,當且僅當它實作此介面時。 如有需要,可透過 instanceof 運算元在執行時測試此功能。
在 1.4 版本加入。
Java 文件 java.nio.channels.InterruptibleChannel。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsOpen |
如果此通道開啟,則回傳為真。 (繼承來源 IChannel) |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
一個可以非同步閉合和中斷的通道。 (繼承來源 IJavaPeerable) |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Close() |
關閉這個頻道。 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
一個可以非同步閉合和中斷的通道。 (繼承來源 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個可以非同步閉合和中斷的通道。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |