IWatchService 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다.
[Android.Runtime.Register("java/nio/file/WatchService", "", "Java.Nio.FileNio.IWatchServiceInvoker", ApiSince=26)]
public interface IWatchService : IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable
[<Android.Runtime.Register("java/nio/file/WatchService", "", "Java.Nio.FileNio.IWatchServiceInvoker", ApiSince=26)>]
type IWatchService = interface
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 특성
- 구현
설명
변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다. 예를 들어 파일 관리자는 watch 서비스를 사용하여 파일을 만들거나 삭제할 때 파일 목록의 표시를 업데이트할 수 있도록 디렉터리에서 변경 내용을 모니터링할 수 있습니다.
Watchable
개체는 해당 메서드를 호출하고 Watchable#register register
등록을 나타내는 를 반환하여 WatchKey
watch 서비스에 등록됩니다. 개체에 대한 이벤트가 감지되면 키가 em>signalled</em>이고<, 현재 신호를 받지 않으면 키 검색 및 처리 이벤트를 호출 #poll() poll
#take() take
하는 소비자에 의해 검색될 수 있도록 watch 서비스에 큐에 대기됩니다. 이벤트가 처리되면 소비자는 키의 WatchKey#reset reset
메서드를 호출하여 키를 다시 설정하여 키를 신호로 보내고 추가 이벤트와 함께 다시 큐에 대기할 수 있도록 합니다.
watch 서비스에 대한 등록은 키의 WatchKey#cancel cancel
메서드를 호출하여 취소됩니다. 취소될 때 큐에 대기 중인 키는 검색될 때까지 큐에 남아 있습니다. 개체에 따라 키가 자동으로 취소될 수 있습니다. 예를 들어 디렉터리가 감시되고 watch 서비스에서 디렉터리가 삭제되었거나 파일 시스템에 더 이상 액세스할 수 없음을 감지한다고 가정합니다. 이러한 방식으로 키가 취소되면 현재 신호를 받지 않으면 신호가 표시되고 큐에 대기됩니다. 소비자에게 메서드의 반환 값 reset
에 대한 알림을 받도록 하려면 키가 유효한지 나타냅니다.
watch 서비스는 여러 동시 소비자가 사용하기에 안전합니다. 한 소비자만 특정 개체에 대한 이벤트를 처리하도록 하려면 해당 이벤트가 처리된 후에만 키의 reset
메서드가 호출되도록 주의해야 합니다. 메서드는 #close close
언제든지 호출되어 서비스를 닫아 키를 검색하기 위해 대기하는 스레드가 를 throw ClosedWatchServiceException
하도록 할 수 있습니다.
파일 시스템은 이벤트를 검색하거나 처리할 수 있는 것보다 빠르게 보고할 수 있으며, 구현은 누적될 수 있는 이벤트 수에 대해 지정되지 않은 제한을 적용할 수 있습니다. 구현<에서>고의로</em>이 이벤트를 삭제하는 경우 키의 메서드가 이벤트 형식StandardWatchEventKinds#OVERFLOW OVERFLOW
의 WatchKey#pollEvents pollEvents
요소를 반환하도록 정렬합니다. 이 이벤트는 소비자가 개체의 상태를 다시 검사하는 트리거로 사용할 수 있습니다.
감시된 디렉터리의 파일이 수정되었음을 나타내는 이벤트가 보고되면 파일을 수정한 프로그램(또는 프로그램)이 완료되었다는 보장은 없습니다. 파일을 업데이트할 수 있는 다른 프로그램과 액세스를 조정하려면 주의해야 합니다. 클래스는 java.nio.channels.FileChannel FileChannel
다른 프로그램의 액세스에 대해 파일의 영역을 잠그는 메서드를 정의합니다.
<h2>플랫폼 종속성</h2>
파일 시스템에서 이벤트를 관찰하는 구현은 사용 가능한 경우 네이티브 파일 이벤트 알림 시설에 직접 매핑하거나 네이티브 기능을 사용할 수 없는 경우 폴링과 같은 기본 메커니즘을 사용하기 위한 것입니다. 따라서 이벤트가 검색되는 방법, 적시성 및 순서가 유지되는지 여부에 대한 많은 세부 정보는 매우 구체적인 구현입니다. 예를 들어 감시된 디렉터리의 파일이 수정되면 일부 구현에서는 단일 StandardWatchEventKinds#ENTRY_MODIFY ENTRY_MODIFY
이벤트가 발생하지만 다른 구현에서는 여러 이벤트가 발생할 수 있습니다. 수명이 짧은 파일(즉, 파일을 만든 후 매우 빠르게 삭제됨)은 파일 시스템을 주기적으로 폴링하여 변경 내용을 검색하는 기본 구현에서 검색되지 않을 수 있습니다.
감시된 파일이 로컬 스토리지 디바이스에 없는 경우 파일의 변경 내용을 검색할 수 있는 경우에 한정된 구현입니다. 특히 원격 시스템에서 수행되는 파일의 변경 내용을 검색할 필요는 없습니다.
1.7에 추가되었습니다.
에 대한 Java 설명서입니다 java.nio.file.WatchService
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
속성
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
JniIdentityHashCode |
|
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
PeerReference |
JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
Close() |
이 watch 서비스를 닫습니다. |
Disposed() |
instance 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 instance 대한 미해결 참조가 없으면 를 호출 |
Finalized() |
instance 완료되면 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
Poll() |
다음 watch 키를 검색하고 제거하거나 |
Poll(Int64, TimeUnit) |
다음 watch 키를 검색하고 제거합니다. 아직 없는 경우 지정된 대기 시간까지 필요한 경우 대기합니다. |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다. (다음에서 상속됨 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
에서 반환 |
Take() |
아직 없는 경우 대기하여 다음 watch 키를 검색하고 제거합니다. |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다. |
GetJniTypeName(IJavaPeerable) |
변경 및 이벤트에 대해 등록된 개체를 감시</포함하는> watch 서비스<>입니다. |