ObjectiveCMarshal.CreateReferenceTrackingHandle Método

Definição

Solicite o acompanhamento de referência nativa 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 acompanhamento de referência.

Exceções

A API ObjectiveCMarshal não foi inicializada.

Comentários

A Initialize função deve ser chamada antes de chamar essa função.

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

O retorno de chamada "É Referenciado" passado para Initialize() será passado para o taggedMemory retornado dessa função. A memória em que ele aponta é definida pelo comprimento e Span<T> será zerado. Ele estará disponível até obj ser coletado pelo GC. A memória apontada pode taggedMemory 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 sempre, 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