У нас есть приложение Windows Forms, которое использует элемент управления ActiveX (стороннего пользователя) и замечает в объектах производительности .NET в разделе ".NET CLR Memory", что количество используемых "синхронных блоков" постоянно увеличивается (вдоль с увеличением использования памяти), хотя наше приложение сидит там без дела.
Встроенное объяснение состояний счета приемника:
Этот счетчик отображает текущее количество используемых блоков синхронизации. Блоки синхронизации - это структуры данных для объекта, выделенные для хранения информации синхронизации. Блоки синхронизации хранят слабые ссылки на управляемые объекты и должны быть отсканированы сборщиком мусора. Блоки синхронизации не ограничиваются хранением информации синхронизации и могут также хранить метаданные COM interop. Этот счетчик был разработан для указания проблем производительности при интенсивном использовании примитивов синхронизации.
Количество блоков синхронизации, кажется, получает reset, когда мы переключаемся на другое приложение. Что именно заставляет их создавать, и есть ли какие-либо советы по их сокращению?
(Кстати, в списке счетчиков производительности написано "раковина", я не уверен, что это опечатка или шумоизоляция)