Размер кода не является метрикой, которую вы должны использовать, чтобы определить, выполнять ли работу в отдельном потоке.В худшем случае длина выполнения равна.
Во-первых, существует не так много конструкций пользовательского интерфейса, в которых действительно желательно выполнить кучу работы над Form_Load.Если это возможно, я обычно либо:
- Инициирую эту работу, прежде чем открывать форму непосредственно в ответ на действие пользователя.
- Переместить всю работу в фоновый режим и асинхронно обновить(связать?) результаты с формой.
- Задержка работы до тех пор, пока пользователь не выполнит определенное действие, которое требует его.
Ваши пользователи будут хотеть / ожидать, что ваши формы будут чрезвычайнобыстро и отзывчиво, независимо от того, сколько работы делается.Выполнение потенциально длительных операций во время Form_Load всегда приводит к плохому взаимодействию с пользователем.
BackgroundWorker - это только один механизм для асинхронного выполнения работы, есть много других.Вы должны выбрать тот, который наиболее подходит для каждой ситуации.