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. Это гарантирует, что очистка rcWs с однопоточным подразделением (STA) выполняется во всех приложениях, включая приложения, которые недостаточно часто накачиваются. Однако некоторые приложения, которые делают насос соответствующим образом, очень чувствительны к месту перекачки. Когда система взаимодействия перекачивает сообщения в этих приложениях в неожиданных местах , приложение может столкнуться с проблемами повторного входа, которые трудно диагностировать. Поэтому приложения должны иметь возможность управлять собственной прокачкой для конкретного STA и контролировать очистку RCW.
Однако разработчики часто управляют только подмножеством потоков в своем приложении и, следовательно, не могут гарантировать, что все потоки работают надлежащим образом.
Чтобы решить эту проблему, выполните указанные ниже действия.
Thread.DisableComObjectEagerCleanup Используйте метод , чтобы отключить автоматическую очистку rcws и накачку сообщений, которая происходит, для каждого потока. Это позволяет разработчикам отказаться от автоматической очистки и откачивания соответствующих сообщений.
Используйте метод , CleanupUnusedObjectsInCurrentContext чтобы уведомить среду выполнения о очистке всех rcws, выделенных в текущем контексте. Этот сопутствующий метод позволяет разработчикам точно контролировать, когда среда выполнения выполняет очистку в текущем контексте.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по