Что я делаю при отправке больших объемов данных - отправляю их по 100 штук, каждая из которых имеет размер более 50 КБ, а затем обновляет индикатор выполнения в соответствии с текущим процентом. Я делаю это путем сериализации файла в byte [], а затем в цикле while, затем отправляю Application.DoEvents()
для обновления пользовательского интерфейса.
Я уверен, что вы также можете использовать асинхронные фоновые рабочие, а затем событие Update увеличивает индикатор выполнения.
Я бы сказал, если ты можешь разделить это, сделай это. Потому что, если в соединении есть прерывание, вы всегда можете перезагрузить и т. Д. Вот почему bittorrent и ilk делят файл на куски.
Просто убедитесь, что у вас есть хорошие контрольные суммы и обнаружение ошибок. Чем больше частей вы разделяете, тем больше частей вы должны отслеживать.