1
我想同時處理許多任務,因爲他們不需要eachothers完成移動到下一個任務。我使用了同步過程並試圖將其變爲異步。然而,在測量性能時,兩種方法需要完全相同的時間才能完成(大約30秒),我期望異步更快......如果我已經1)得到以下正確2)瞭解異步對於(我懷疑這是問題)。異步等待併發在長功能
public class ExpensiveTask {
private int _seed;
public ExpensiveTask(int seed){ _seed = seed; }
public Process() { //TODO various things }
}
public class Controller {
public static void main(string[] args){
var program = new Controller();
program.RunAsync(); // Runtime 36.9s
program.Run(); // Runtime 36.6s
}
void Run(){
Process(1);
Process(2);
Process(3);
}
async void RunAsync(){
var taskList = new List<Task>();
taskList.Add(ProcessAsync(1));
taskList.Add(ProcessAsync(2));
taskList.Add(ProcessAsync(3));
await Task.WhenAll(taskList);
}
async Task ProcessAsync(int seed){
var task = new ExpensiveTask(seed);
task.Process();
}
void Process(int seed){
var task = new ExpensiveTask(seed);
task.Process();
}
}
想我剛剛在使用新的關鍵字趕上了。 – ct5845