>>590
static async Task Main(string[] args)
{
var taskA = Task.Run(()=> CalcA());
var taskB = Task.Run(()=> CalcB());
var resultA = await taskA;
await Save(resultA);
var resultB = await taskB;
await Save(resultB);
}

これを一般化してtaskをListに追加していって
Listを回して計算結果をawaitしながら直列で書き込めばいい