我要問你的時候:我有代碼:指派屬性,任務完成
var task1 = await _connectionService.ValidateUriAsync(uri1);
OutputResult("ss", task1);
var task2 = await _connectionService.ValidateUriAsync(uri2);
OutputResult("bb", task2);
var task3 = await _connectionService.ValidateUriAsync(uri3);
OutputResult("cc", task3);
現在我在等待,直到每個任務完成,然後我將結果輸出。但我想獨立運行所有任務(我知道該怎麼做)。但是我不知道的是,當某個任務完成時,我需要輸出每個任務的結果。如果任務失敗,則輸出將爲 - task1失敗或Task1成功。 我試過這個解決方案,但我將不得不檢查哪個任務已完成,並且結果如何(true/false)。這很複雜。如果我有100個任務,我不能有100個條件。
var tasks = new[] {task1, task2, task3};
var process = tasks.Select(async task =>
{
var result = await task;
if(task == task1)assign property
});
await Task.WhenAll(proces);
編輯: 這裏是ValidateUriAsync FUNC:
public async Task<bool> ValidateUriAsync(Uri uri)
{
try
{
var request = WebRequest.CreateHttp(uri);
var result = await request.GetResponseAsync();
return true;
}
catch (Exception e)
{
return false;
}
}
所有任務的結果是相同類型的嗎? – Default
是的。 ValidateUriAsync返回true/false。 – JuP
你能否展示一些你如何創建你的任務的摘錄(我猜你沒有100行代碼來執行'var task_n = await _co ... Async(uri_n)')? – Default