JniEnvironment.References.CreatedReference(JniObjectReference) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
JNI リファレンスを作成するためのアカウント。
public static void CreatedReference(Java.Interop.JniObjectReference value);
static member CreatedReference : Java.Interop.JniObjectReference -> unit
パラメーター
- value
- JniObjectReference
作成された JNI 参照を含む JniObjectReference 値。
例外
value は JNI ローカル参照ではありません。
注釈
LocalReferenceCount プロパティは、Javaする JNI ローカル参照の数のアドバイザリ値を提供します。相互運用機能が作成されました。 GlobalReferenceCount プロパティは、Javaする JNI グローバル参照の数のアドバイザリ値を提供します。相互運用機能が作成されました。 WeakGlobalReferenceCount プロパティには、Javaする JNI 弱いグローバル参照の数のアドバイザリ値が含まれています。相互運用機能が作成されました。 これらのカウントは、 NewLocalRef() や NewGlobalRef()など、JNI 参照が作成されるたびにインクリメントされます。このカウントは、JNI ローカル参照が破棄されるたびにデクリメントされます (例: Java.Interop.JniObjectReference.Disposeから)。
この会計は、Javaするワールド ビューを前提としています。相互運用機能は、JNI ローカル参照を作成できる場所に介入できます。 JNI ローカル参照をJavaなしで作成できるシナリオもあるため、これは当てはまるわけではありません。そのことを知っている相互運用。 このような注目すべき例の 1 つは、プラットフォーム呼び出しを使用して、JNI ローカル参照 (IntPtr) を返すネイティブ Java_ C 関数を呼び出す場合です。 このような追跡不可能な JNI ローカル参照が作成されると、追跡対象の JNI ローカル参照数が負になると、 Java.Interop.JniRuntime.JniObjectReferenceManager.DeleteLocalReference 内で将来アサーションが失敗する可能性があります。
Javaに通知するには、CreatedLocalReferenceを使用します。JNI ローカル参照アカウンティングで将来のアサーションが生成されないように、JNI ローカル参照が外部で作成された相互運用。