Скорее всего, ваши объекты C # не реализуют IDisposable, и вы явно не избавляетесь от них.В этом случае, если вы передаете объект обратного вызова из exe-файла VB6 activex в C # lib, он удерживает эту ссылку в своих объектах даже после того, как вы освободили объекты, потому что C # это сборщик мусора.В конце концов, когда сборщик очищается, он освобождает те объекты C #, который затем освобождает ссылки на ваши объекты обратного вызова VB6, и все очищается.