語言

IInterruptibleChannel 介面

定義

一個可以非同步閉合和中斷的通道。

[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

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

一個可以非同步閉合和中斷的通道。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
Close()

關閉這個頻道。

Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一個可以非同步閉合和中斷的通道。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個可以非同步閉合和中斷的通道。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於