IAsynchronousChannel 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
비동기 I/O 작업을 지원하는 채널입니다.
[Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)]
public interface IAsynchronousChannel : IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)>]
type IAsynchronousChannel = interface
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 파생
- 특성
- 구현
설명
비동기 I/O 작업을 지원하는 채널입니다. 비동기 I/O 작업은 일반적으로 다음 두 가지 형식 중 하나를 사용합니다.
<ol><li>
{@link Future}<V> <em>operation</em>(<em>...</em>)
</li li><>
void <em>operation</em>(<em>...</em> A attachment, {@link
CompletionHandler}<V,? super A> handler)
</li></ol>
여기서 operation 은 I/O 작업의 이름(예: 읽기 또는 쓰기)이고 , V 는 I/O 작업의 결과 형식이고, A 는 결과를 사용할 때 컨텍스트를 제공하기 위해 I/O 작업에 연결된 개체의 형식입니다. 첨부 파일은 em state-less</em>CompletionHandler
을 <사용하여 많은 I/O 작업의 결과를 사용하는 경우에 중요합니다.>
첫 번째 양식에서 인터페이스에서 정의한 Future Future
메서드를 사용하여 작업이 완료된 경우 검사 완료될 때까지 기다렸다가 결과를 검색할 수 있습니다. 두 번째 형식 CompletionHandler
에서 는 I/O 작업이 완료되거나 실패할 때 I/O 작업의 결과를 사용하도록 호출됩니다.
이 인터페이스를 구현하는 채널은 <>비동기적으로 근접</em>입니다. 채널에서 I/O 작업이 미해결 상태이고 채널의 #close close
메서드가 호출되면 예외AsynchronousCloseException
와 함께 I/O 작업이 실패합니다.
비동기 채널은 여러 동시 스레드에서 사용하기에 안전합니다. 일부 채널 구현은 동시 읽기 및 쓰기를 지원할 수 있지만 한 번에 두 개 이상의 읽기 및 쓰기 작업이 미해결되는 것을 허용하지 않을 수 있습니다.
<h2>취소</h2>
인터페이스는 Future
실행을 취소하는 메서드를 정의합니다 Future#cancel cancel
. 이렇게 하면 I/O 작업 결과를 기다리는 모든 스레드가 를 throw java.util.concurrent.CancellationException
합니다. 기본 I/O 작업을 취소할 수 있는지 여부는 매우 구체적인 구현이므로 지정되지 않습니다. 취소가 채널 또는 채널이 연결된 엔터티를 일관성 없는 상태로 유지하면 채널은 취소된 작업과 유사한 I/O 작업을 더 이상 시작하지 못하게 하는 특정 em 오류 상태</em> 구현<>에 배치됩니다. 예를 들어 읽기 작업이 취소되었지만 구현에서 채널에서 바이트를 읽지 않았다고 보장할 수 없는 경우 채널을 오류 상태로 만듭니다. 작업을 시작 read
하려고 하면 지정되지 않은 런타임 예외가 throw됩니다. 마찬가지로 쓰기 작업이 취소되었지만 구현에서 바이트가 채널에 기록되지 않았다고 보장할 수 없는 경우 후속 시작 write
시도는 지정되지 않은 런타임 예외와 함께 실패합니다.
메서드가 Future#cancel cancel
로 설정된 매개 변수를 사용하여 mayInterruptIfRunning
true
호출되는 경우 채널을 닫아 I/O 작업이 중단될 수 있습니다. 이 경우 I/O 작업 throw CancellationException
결과 및 채널에서 미해결된 다른 I/O 작업의 결과를 기다리는 모든 스레드는 예외 AsynchronousCloseException
를 제외하고 완료됩니다.
메서드를 cancel
호출하여 읽기 또는 쓰기 작업을 취소하는 경우 I/O 작업에 사용되는 모든 버퍼를 삭제하거나 채널이 열려 있는 동안 버퍼에 액세스하지 않도록 주의하는 것이 좋습니다.
1.7에 추가되었습니다.
에 대한 Java 설명서입니다 java.nio.channels.AsynchronousChannel
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
속성
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
IsOpen |
이 채널이 열려 있으면 true를 반환합니다. (다음에서 상속됨 IChannel) |
JniIdentityHashCode |
|
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
PeerReference |
JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
Close() |
이 채널을 닫습니다. |
Disposed() |
instance 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 instance 대한 미해결 참조가 없으면 를 호출 |
Finalized() |
instance 완료되면 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
비동기 I/O 작업을 지원하는 채널입니다. (다음에서 상속됨 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
에서 반환 |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
비동기 I/O 작업을 지원하는 채널입니다. |
GetJniTypeName(IJavaPeerable) |
비동기 I/O 작업을 지원하는 채널입니다. |