ObjectiveCMarshal.Initialize Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi OBJECTIVE-C marshalling API.
public:
static void Initialize(delegate* unmanaged<void> ^ beginEndCallback, delegate* unmanaged<IntPtr , int> ^ isReferencedCallback, delegate* unmanaged<IntPtr , void> ^ trackedObjectEnteredFinalization, System::Runtime::InteropServices::ObjectiveC::ObjectiveCMarshal::UnhandledExceptionPropagationHandler ^ unhandledExceptionPropagationHandler);
public static void Initialize (delegate* unmanaged<void> beginEndCallback, delegate* unmanaged<IntPtr, int> isReferencedCallback, delegate* unmanaged<IntPtr, void> trackedObjectEnteredFinalization, System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler unhandledExceptionPropagationHandler);
static member Initialize : delegate* unmanaged<unit> * delegate* unmanaged<nativeint, int> * delegate* unmanaged<nativeint, unit> * System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler -> unit
Public Shared Sub Initialize (beginEndCallback As delegate* unmanaged<Void>, isReferencedCallback As delegate* unmanaged< As IntPtr, Integer>, trackedObjectEnteredFinalization As delegate* unmanaged< As IntPtr, Void>, unhandledExceptionPropagationHandler As ObjectiveCMarshal.UnhandledExceptionPropagationHandler)
Parameter
- beginEndCallback
- delegate* unmanaged<Void>
Dipanggil saat pelacakan dimulai dan berakhir.
Dipanggil untuk menentukan apakah instans objek terkelola direferensikan di tempat lain, dan tidak boleh dikumpulkan oleh GC.
- trackedObjectEnteredFinalization
-
delegate* unmanaged<nativeint, Void>
Dipanggil ketika objek terlacak memasuki antrean finalisasi.
- unhandledExceptionPropagationHandler
- ObjectiveCMarshal.UnhandledExceptionPropagationHandler
Handler untuk penyebaran Pengecualian yang tidak tertangani di seluruh batas terkelola -> asli (yaitu, Reverse P/Invoke).
Keterangan
Semua penunjuk fungsi yang tidak dikelola harus ditulis dalam kode asli karena akan dipanggil oleh GC dan kode terkelola tidak dapat berjalan pada saat itu.
beginEndCallback
akan dipanggil ketika pelacakan referensi dimulai dan berakhir. Pasangan awal/akhir terkait tidak akan pernah ditumpuk. Saat menggunakan Workstation GC, pasangan mulai/akhir akan dipanggil pada utas yang sama. Saat menggunakan Server GC, pasangan awal/akhir tidak dijamin akan dipanggil pada utas yang sama.
isReferencedCallback
harus mengembalikan 0 untuk referensi bukan atau 1 untuk dirujuk. Nilai lainnya memiliki perilaku yang tidak ditentukan.
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk