語言

JniEnvironment.References.CreatedReference(JniObjectReference) 方法

定義

請考慮建立 JNI 參考資料。

public static void CreatedReference(Java.Interop.JniObjectReference value);
static member CreatedReference : Java.Interop.JniObjectReference -> unit

參數

value
JniObjectReference

一個 JniObjectReference 包含 JNI 參考的值。

例外狀況

value 並非JNI地方參考。

備註

該LocalReferenceCount屬性提供 Java 的 JNI 本地參考數量的諮詢值。Interop 創造了許多。 該GlobalReferenceCount屬性提供 Java 的 JNI 全域參考數量的諮詢值。Interop 創造了許多。 該WeakGlobalReferenceCount屬性包含 Java 的 JNI 弱全域參考數量的諮詢值。Interop 創造了許多。 每當建立 JNI 參考時,這些計數會遞增,例如從 NewLocalRef() 或 NewGlobalRef(),而當 JNI 局部參考被銷毀時,這個計數會遞減,例如從 。Java.Interop.JniObjectReference.Dispose

這種會計假設了一種世界觀,其中 Java.只要能建立 JNI Local 參考,互通都可以介入。 事實並非如此,因為有些情境下 JNI 本地參考可以在不使用 Java 的情況下建立。Interop 知道這件事。 其中一個顯著例子是使用 Platform Invoke 呼叫原生 Java_ C 函式時,會回傳 JNI 本地參考(IntPtr)。 當建立這些無法追蹤的 JNI 地方參考時,未來的斷言可能會在追蹤的 JNI 地方參考計數變為負數時失 Java.Interop.JniRuntime.JniObjectReferenceManager.DeleteLocalReference 效。

用 通知 CreatedLocalReference Java。互通性假設 JNI 地方參考已在外部建立,因此 JNI 地方參考會計不會產生未來的斷言。

適用於