Это не вопрос, я уже ответил на него. Но это может быть полезно и другим.
Вот что происходит:
- Создайте WinForm с Datagridview и привяжите коллекцию Subsonic ... с более чем 500 загруженными в нее объектами
- Добавьте несколько столбцов в сетку данных и сделайте хотя бы один autosizemode = fill
- Добавить логику для удаления всех выбранных столбцов (например, при нажатии клавиши -> удалить)
- Отметьте все записи и удалите их
Это должно занять около 30 секунд. на ПК высокого класса (и масштабируется: 1 мин для 1000 ...)
Причина:
Каждый раз, когда вы удаляете строку, запускается событие ListChanged коллекций, которое заставляет datagridview пересчитывать пространство, необходимое для столбца с автоматическим размером (если кого-то интересуют «внутренности», я прикрепил граф вызовов.