Share via


Diversos ejemplos de cálculo de referencias

Entre los factores que pueden afectar al comportamiento del contador de referencias interoperativo se incluyen la recolección de elementos no utilizados y los subprocesos. Además, pequeñas diferencias en la programación y los modelos de tipos pueden provocar confusión en el paso de los datos a una biblioteca no administrada. En esta sección se ofrece un conjunto de ejemplos en los que se tratan algunas de estas diferencias.

En la tabla siguiente se enumeran las opciones de cálculo de referencias para diversos tipos de elementos, se describe su uso y se proporciona un vínculo al ejemplo correspondiente.

Tipo de elemento Descripción Ejemplo

Puntero de función

Pasa un delegado a una función no administrada que espera recibir un puntero a función.

Devolución de llamada

HandleRef

Utiliza la estructura HandleRef para impedir la recolección de elementos no utilizados.

HandleRef

LPARAM

Utiliza la estructura GCHandle para pasar un objeto administrado a una función no administrada que espera recibir un tipo LPARAM.

GCHandle

Apartamento de un único subproceso (STA)/apartamento multiproceso (MTA)

Cambia la configuración de apartamento predeterminada cuando una función no administrada llama a CoInitialize.

ActiveDir

void*

Llama a una función que tiene void* como parámetro.

Tipo Void

Vea también

Conceptos

Tipos de datos de invocación de plataforma
Calcular referencias de cadenas
Calcular referencias de clases, estructuras y uniones
Calcular referencias de matrices de tipos

Otros recursos

Calcular referencias de datos con invocación de plataforma