Marshal.CleanupUnusedObjectsInCurrentContext Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Уведомляет среду выполнения очистить все вызываемые оболочки среды выполнения (RCW), выделенные в текущем контексте.
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 ()
- Атрибуты
Комментарии
Система взаимодействия насосов сообщений во время попытки очистить RCW. Это гарантирует, что очистка для однопоточных квартир (STA) RCW выполняется во всех приложениях, включая приложения, которые недостаточно часто насосы. Однако некоторые приложения, которые делают насос соответствующим образом, очень чувствительны к тому, где происходит насос. Когда сообщения системы взаимодействия насосируются в этих приложениях, в местах, которые являются непредвиденными, приложение может столкнуться с проблемами повторного входа, которые трудно диагностировать. Таким образом, приложения должны иметь возможность управлять собственными насосами для определенного STA и управлять очисткой RCW.
Однако разработчики часто управляют подмножеством потоков в приложении и поэтому не могут гарантировать, что все потоки перекачиваются соответствующим образом.
Чтобы решить эту проблему, выполните указанные ниже действия.
Thread.DisableComObjectEagerCleanup Используйте метод, чтобы отключить автоматическую очистку rcWs, а также прокачивать сообщения на основе потока. Это позволяет разработчикам отказаться от автоматической очистки и соответствующего сообщения.
CleanupUnusedObjectsInCurrentContext Используйте метод, чтобы уведомить среду выполнения, чтобы очистить все rcW, выделенные в текущем контексте. Этот метод компаньона позволяет разработчикам точно контролировать, когда среда выполнения выполняет очистку в текущем контексте.