По-видимому, разница объясняется тем, что командным методом удаляется вся группа, а энтделом удаляются объекты один за другим. Если командным методом начать удалять объекты по очереди, а не группой, результат будет, очевидно, ровно наоборот другой.
Предложил бы использовать метод erase. Протестировал код на 200к объектов. Стандартная команда удалить выполняется за 20с. Удаление группы через activeX приблизительно за 30с. Медленнее, конечно, но может и подойти
Позволю себе слегка побурчать
Метки начала и конца отмены забыты. И, возможно, преобразовав набор в список элементов, скорость изменится.
P.S. М.б., regenmode поменять еще? Ну и восстановить ее обратно потом, естественно
Надеялся, что прокатит без бурчания)))
Что интересно, отмена команды работает вполне себе ожидаемым образом, несмотря на отсутствие меток. Кроме того, это не рабочий код, а идея использования группового метода по отношению к объектам в наборе.
Предположу, что удаление группой всяко будет быстрее, чем удаление по объектам. Независимо от способа реализации (командный, лисп или шарп).
А удаление группы на большом количестве объектов будет плюс-минус одинаковым, т.к. все методы под капотом содержат старые добрые плюсы.
В варианте ActiveX меня больше всего напрягает неудобство манипуляций с наборами в части добавления объектов (если свойства ActiveSelectionset недостаточно), хотя во всем остальном видится наиболее рациональным подходом: достаточно быстро, универсально, платформо-независимо.