По моим исследованиям, UpdateLayout
представляется очень убедительным способом обновления всех элементов управления макета. Тем не менее, в большинстве случаев система верстки достаточно умная и достаточно быстрая для самостоятельного обновления. Все, что я прочитал, наводит меня на мысль, что этот вызов необходим, только если вы делаете много изменений макета (добавляете элементы управления и перемещаете их), и вам нужен один конкретный сценарий макета, который будет отображаться, пока остальная часть стека обновлений завершено (однако мне еще предстоит увидеть хороший пример для отображения этого ... нормальный алгоритм компоновки, кажется, просто хорош). Эта статья MSDN о макете должна помочь прояснить ситуацию.
Однако из вышесказанного:
Метод UpdateLayout вызывает рекурсивное обновление макета и является
часто не нужно
и эта документация
Частые вызовы InvalidateArrange или, в частности, UpdateLayout,
имеют значительные последствия для производительности, если большое количество элементов
существуют в пользовательском интерфейсе. Избегайте вызова этого метода, если вы абсолютно
требовать точного состояния макета для последующих вызовов других API в
ваш код.
В заключение прямо отвечу на ваш вопрос. В основном это делается самостоятельно с помощью внутренней логики пользовательского интерфейса, и вам, скорее всего, никогда не понадобится ее использовать. С учетом вышесказанного мне кажется, что это было бы довольно очевидно, когда вам нужно его использовать (и это не для многопоточности, как думали многие, включая меня)