Compartilhar via


ObjectiveCMarshal.CreateReferenceTrackingHandle Método

Definição

Solicitar rastreamento de referência nativo para o objeto fornecido.

public:
 static System::Runtime::InteropServices::GCHandle CreateReferenceTrackingHandle(System::Object ^ obj, [Runtime::InteropServices::Out] Span<IntPtr> % taggedMemory);
public static System.Runtime.InteropServices.GCHandle CreateReferenceTrackingHandle (object obj, out Span<IntPtr> taggedMemory);
static member CreateReferenceTrackingHandle : obj * Span -> System.Runtime.InteropServices.GCHandle
Public Shared Function CreateReferenceTrackingHandle (obj As Object, ByRef taggedMemory As Span(Of IntPtr)) As GCHandle

Parâmetros

obj
Object

O objeto a ser rastreado.

taggedMemory

Span<IntPtr>

Span<nativeint>

Um ponteiro para a memória marcada para o objeto .

Retornos

Identificador de GC de rastreamento de referência.

Exceções

A API ObjectiveCMarshal não foi inicializada.

Comentários

Initialize() deve ser chamado antes de chamar essa função.

O obj deve ter um tipo em sua hierarquia marcado com ObjectiveCTrackedTypeAttribute.

O retorno de chamada "É Referenciado" passado para Initialize() será passado o taggedMemory retornado dessa função. A memória em que ele aponta é definida pelo comprimento no Span<T> e será zerado. Ele estará disponível até obj ser coletado pelo GC. A memória apontada por taggedMemory pode ser usada para qualquer finalidade pelo chamador dessa função e utilizável durante o retorno de chamada "É Referenciado".

Chamar essa função várias vezes com o mesmo obj retornará um novo identificador a cada vez, mas a mesma memória marcada será retornada. A memória marcada só tem a garantia de ser zero inicializada na primeira chamada.

O chamador é responsável por liberar o retornado GCHandle.

Aplica-se a