Método Marshal.CleanupUnusedObjectsInCurrentContext ()
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Notifica o tempo de execução para limpar todos os RCWs (Runtime Callable Wrappers) alocados no contexto atual.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Sintaxe
[SecurityCriticalAttribute]
public static void CleanupUnusedObjectsInCurrentContext()
public:
[SecurityCriticalAttribute]
static void CleanupUnusedObjectsInCurrentContext()
[<SecurityCriticalAttribute>]
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
<SecurityCriticalAttribute>
Public Shared Sub CleanupUnusedObjectsInCurrentContext
Comentários
O sistema de interoperabilidade bomba de mensagens enquanto tenta limpar RCWs. Isso garante que a limpeza para single-threaded apartment (STA) RCWs ocorre em todos os aplicativos, incluindo aqueles que não bomba com bastante frequência. No entanto, alguns aplicativos que bomba adequadamente são muito sensíveis a onde bombeamento ocorre. Quando o sistema interoperabilidade bomba de mensagens nesses aplicativos, em locais inesperados, o aplicativo pode encontrar problemas de reentrância que são difíceis de diagnosticar. Portanto, os aplicativos precisam ser capaz de controlar seus próprios bombeamento para um determinado STA e a limpeza de controle de RCWs.
No entanto, os desenvolvedores geralmente só um subconjunto dos segmentos no seu aplicativo de controle e, portanto, não podem garantir que todos os threads são bombeamento adequadamente.
Para resolver esse problema:
Use o Thread.DisableComObjectEagerCleanup método para desativar a limpeza automática de RCWs e a bombeamento de mensagens que ocorre em uma base por thread. Isso permite aos desenvolvedores recusar a limpeza automática e a bombeamento de mensagens correspondente.
Use o CleanupUnusedObjectsInCurrentContext método para notificar o tempo de execução para limpar todos os RCWs são alocados no contexto atual. Esse método complementar permite aos desenvolvedores controlar com precisão quando o tempo de execução executa a limpeza no contexto atual.
Segurança
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Informações de Versão
.NET Framework
Disponível desde 4.0
Confira Também
Classe Marshal
Namespace System.Runtime.InteropServices
Retornar ao início