Во-первых, отказ от ответственности: многозадачность - это , а не волшебная пуля "иди быстрее". Если вы примените его к неправильной проблеме, вы получите код, который более сложен / подвержен ошибкам, требует больше памяти и на самом деле медленнее , чем обычный старый синглетный / последовательный подход. Одна альтернативная задача для длительной операции обычно обязательна. Но массовое распараллеливание только в очень определенных обстоятельствах.
Общие файловые операции связаны с диском или сетью. Многозадачность не увеличит скорость операций с диском или сетью. И действительно, это может привести к замедлению, так как NCQ и аналогичные функции должны выправлять ваши запросы произвольного доступа. Это сказанное с Netowrking это иногда может помочь. Некоторые серверы применяют лимит «на соединение», и, таким образом, разделение загрузки на несколько сегментов с собственным соединением может привести к ускорению сети. Но будьте уверены, что это действительно так. Рассмотрим все, кроме пункта 1 Speed Rant .
Предполагается, что FTPWebRequest по-прежнему используется классом, который выглядит как ContentLenght и ContentOffset может быть дроидами, которых вы ищете. Вы в основном используете это подобно подстроке - каждое соединение / подзапрос берет X байтов из Y смещения.