Marshal.CleanupUnusedObjectsInCurrentContext Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Notifica al tiempo de ejecución que debe limpiar todos los contenedores RCW asignados en el contexto actual.
public:
static void CleanupUnusedObjectsInCurrentContext();
public static void CleanupUnusedObjectsInCurrentContext ();
[System.Security.SecurityCritical]
public static void CleanupUnusedObjectsInCurrentContext ();
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
[<System.Security.SecurityCritical>]
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
Public Shared Sub CleanupUnusedObjectsInCurrentContext ()
- Atributos
Comentarios
El sistema de interoperabilidad bombea mensajes mientras intenta limpiar RCW. Esto garantiza que la limpieza de rcW de apartamento uniproceso (STA) se produzca en todas las aplicaciones, incluidas las aplicaciones que no bombean con frecuencia suficiente. Sin embargo, algunas aplicaciones que realizan la bomba adecuadamente son muy sensibles a dónde se produce la bombeo. Cuando el sistema de interoperabilidad envía mensajes en estas aplicaciones, en lugares inesperados, , la aplicación puede encontrar problemas de reentrada que son difíciles de diagnosticar. Por lo tanto, las aplicaciones deben ser capaces de controlar su propia bombeo para un STA determinado y controlar la limpieza de RCW.
Sin embargo, los desarrolladores a menudo solo controlan un subconjunto de los subprocesos de su aplicación y, por tanto, no pueden asegurarse de que todos los subprocesos se estén bombeando correctamente.
Para solucionar este problema:
Utilice el método para desactivar la Thread.DisableComObjectEagerCleanup limpieza automática de RCW y el bombeo de mensajes que se produce, por subproceso. Esto permite a los desarrolladores no participar en la limpieza automática y el bombeo de mensajes correspondiente.
Use el CleanupUnusedObjectsInCurrentContext método para notificar al tiempo de ejecución que limpie todos los RCW asignados en el contexto actual. Este método complementario permite a los desarrolladores controlar con precisión cuándo el tiempo de ejecución realiza la limpieza en el contexto actual.
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de