Первое, что пришло в голову.
byte[] buffer1 = await webClient.DownloadDataTaskAsync(firstUrl);
byte[] buffer2 = await webClient.DownloadDataTaskAsync(secondUrl);
using (FileStream stream = new FileStream("file.data", FileMode.Create))
{
stream.Write(buffer1, 0, buffer1.Length);
stream.Write(buffer2, 0, buffer2.Length);
}
Так же на просторах
stackoverflow можно найти более производительные по памяти решения, когда через DownloadFileAsync уже два файла скачали, их обьединить:
string[] urls = { /* URL адреса файлов */ };
string[] filesNames = { /* имена файлов */ };
// параллельно скачиваем файлы
await Task.WhenAll(urls.Select((url, i) => webClient.DownloadFileTaskAsync(url, filesNames[i])));
// открываем на запись первый файл
using (Stream resultFileStream = File.OpenWrite(filesNames[0]))
{
// открываем на чтение второй файл
using (Stream fileStream = File.OpenRead(filesNames[1]))
{
// копируем поток байтов из второго файла в первый
fileStream.CopyTo(resultFileStream);
}
}
// удаляем второй файл
File.Delete(filesNames[1]);