Я использую службу Windows на своем сервере для получения больших файлов (1 ГБ) от настольных клиентов, когда я использую класс TCPClient, он создает Astream для отправки файла, который блокирует мою память. Что хорошо подходит для этой проблемы
Вы можете посмотреть на Microsoft Background Intelligent Transfer Service, как упомянуто здесь .
Файл должен быть сегментирован, тогда метод должен отправить каждый сегмент по отдельности, одновременно загружая сегменты в память по требованию.
Возможно, при использовании My.Computer.Network.UploadFile() предоставит вам лучший, уже написанный метод загрузки.