IWatchKey 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一个标记,表示使用 WatchService
注册Watchable watchable
对象。
[Android.Runtime.Register("java/nio/file/WatchKey", "", "Java.Nio.FileNio.IWatchKeyInvoker", ApiSince=26)]
public interface IWatchKey : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/nio/file/WatchKey", "", "Java.Nio.FileNio.IWatchKeyInvoker", ApiSince=26)>]
type IWatchKey = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 属性
- 实现
注解
一个标记,表示使用 WatchService
注册Watchable watchable
对象。
向watch服务注册可监视对象时,会创建watch密钥。 键将保留#isValid valid
到以下时间:<ol><li> 它通过调用其 #cancel cancel
方法显式取消,或</li><li> 取消隐式,因为对象不再可访问,或 </li<>li> 由WatchService#close closing
watch服务。 </li></ol>
watch键具有状态。 最初创建时,密钥称为 <em>ready</em>。 当检测到事件时,密钥将<作为 em>signalled</em> 并排队,以便可以通过调用watch服务的 WatchService#poll() poll
或 WatchService#take() take
方法来检索它。 发出信号后,密钥将一直处于此状态,直到调用其 #reset reset
方法将密钥返回到就绪状态。 当密钥处于信号状态时检测到的事件已排队,但不会导致密钥重新排队,以便从watch服务中检索。 事件是通过调用密钥的 方法检索的 #pollEvents pollEvents
。 此方法检索并删除对象累积的所有事件。 最初创建时,watch键没有挂起的事件。 通常,当密钥处于导致以下成语的信号状态时,会检索事件:
for (;;) {
// retrieve key
WatchKey key = watcher.take();
// process events
for (WatchEvent<?> event: key.pollEvents()) {
:
}
// reset the key
boolean valid = key.reset();
if (!valid) {
// object no longer registered
}
}
监视键可以安全地由多个并发线程使用。 如果有多个线程从watch服务检索信号密钥,则应小心确保reset
仅在处理对象的事件后调用方法。 这可确保一个线程随时处理对象的事件。
在 1.7 中添加。
的 java.nio.file.WatchKey
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
属性
Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
IsValid |
一个标记,表示使用 |
JniIdentityHashCode |
返回包装实例的 的值 |
JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
PeerReference |
返回 JniObjectReference 包装的 Java 对象实例的 。 (继承自 IJavaPeerable) |
方法
Cancel() |
取消watch服务的注册。 |
Disposed() |
释放实例时调用。 (继承自 IJavaPeerable) |
DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
Finalized() |
在实例完成时调用。 (继承自 IJavaPeerable) |
PollEvents() |
检索并删除此watch键的所有挂起事件,返回 |
Reset() |
重置此watch密钥。 |
SetJniIdentityHashCode(Int32) |
设置 返回 |
SetJniManagedPeerState(JniManagedPeerStates) |
一个标记,表示使用 |
SetPeerReference(JniObjectReference) |
设置 返回 |
UnregisterFromRuntime() |
取消注册此实例,以便运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
Watchable() |
返回为其创建了此watch键的对象。 |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
一个标记,表示使用 |
GetJniTypeName(IJavaPeerable) |
一个标记,表示使用 |