Показать сообщение отдельно
Старый 08.07.2010, 11:39   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Результаты моих исследований (позже опубликую в блоге):

lockWindowUpdate - обертка над одноименным Win32 методом.
Он просто запрещает обновление выбранного окна на время выполнения какой-либо операции.
(См. MSDN)
Исходя из описания на MSDN, используется в паре с drag&drop операциями.

lock внутри также вызывает lockWindowUpdate, соответственно он делает то же самое, но, в добавок, он также запрещает автоматическое упорядочивание элементов управления в выбранном окне (за это отвечает движок IntelliMorph). Это существенно улучшает производительность выполнения операций, влияющих на отображение формы, если таких операций производится много.

То бишь, думаю уместным будет всегда рекомендовать использование lock/unlock.
Для совсем обеспокоенных производительностью людей добавлю, что в unlock можно передать false для запрета перепозиционирования управляющих элементов в момент вызова метода. Правда, насколько я понял, контролы все равно периодически перерисовываются, поэтому сильно это производительности не улучшит.

Если у кого-то есть, что добавить, пишите.
За это сообщение автора поблагодарили: Maxim Gorbunov (2), mazzy (2), olesh (1), Hyper (1), belugin (3), Logger (4), SHiSHok (2), pedrozzz (1).