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. |
|
Utiliza la estructura HandleRef para impedir la recolección de elementos no utilizados. |
||
LPARAM |
Utiliza la estructura GCHandle para pasar un objeto administrado a una función no administrada que espera recibir un tipo LPARAM. |
|
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. |
|
void* |
Llama a una función que tiene void* como parámetro. |
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