IWatchKey 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個代表物件註冊Watchable watchable的標記。WatchService
[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
- 屬性
- 實作
備註
一個代表物件註冊Watchable watchable的標記。WatchService
當可觀看物件在手錶服務註冊時,會產生一個手錶金鑰。 金鑰會持續#isValid valid到:<ol><li> 它被明確地透過調用其#cancel cancel方法來取消,或</li><li 隱>式取消,因為物件已無法存取,或 </li><li> 由WatchService#close closing手錶服務。
</li></ol>
手錶金鑰有狀態。 當金鑰最初建立時,稱為 <em>ready</em>。 當偵測到事件時,該金鑰會被 <em>signalled</em> 並排隊,以便透過呼叫監控服務 WatchService#poll() poll 或 WatchService#take() take 方法來檢索。 一旦收到訊號,金鑰會保持此狀態,直到 #reset reset 其方法被呼叫以將金鑰恢復到準備狀態。 在金鑰處於訊號狀態時偵測到的事件會被排隊,但不會讓金鑰重新排隊以便從監視服務中取回。 事件可透過調用金鑰的方法 #pollEvents pollEvents 取得。 此方法會檢索並移除所有累積的事件。 在最初建立時,手錶金鑰沒有待處理的事件。 通常當金鑰處於訊號狀態時會擷取事件,導致以下用語:
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
}
}
手錶鍵對多個並行執行緒使用是安全的。 若有多個執行緒從監視服務取得訊號金鑰,則應 reset 注意確保該方法僅在物件事件處理完畢後才被呼叫。 這確保了同一執行緒在任何時候都在處理物件的事件。
在 1.7 版本中加入。
Java 文件 java.nio.file.WatchKey。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsValid |
判斷這把手錶鑰匙是否有效。 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
一個代表物件註冊 |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Cancel() |
取消了手錶服務的註冊。 |
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| PollEvents() |
取回並移除所有待處理的此手錶金鑰事件,回傳 |
| Reset() |
重置這個手錶鑰匙。 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
一個代表物件註冊 |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
| Watchable() |
回傳建立此手錶金鑰的物件。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個代表物件註冊 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |