0
假設我有更多的Uri。我需要驗證,如果他們是可及的。使用WebRequest運行Uri的並行驗證
public RelayCommand TestConnectionCommand => new RelayCommand(async() =>
{
var res1 = await ValidateUriAsync(uri);
var res2 = await ValidateUriAsync(uri);
});
private async Task<bool> ValidateUriAsync(Uri uri)
{
try
{
var request = WebRequest.CreateHttp(uri);
var result = await request.GetResponseAsync();
return true;
}
catch (Exception e)
{
return false;
}
}
當程序涉及到第一等待它需要一些時間來驗證URI後,我得到的結果,我可以顯示在搜索結果。然後程序接下來,我驗證第二個uri。我希望能夠平行進行,無需等待。我正在考慮使用Begin/EndGetResponse。我需要在View上顯示每個驗證的結果。驗證成功/失敗。
非常感謝您的建議。
我知道這件事。但是當任何任務拋出異常時,結果將會是Faulted。 – JuP
如果WhenAll的結果有問題,那麼您需要通過您的任務來查看哪一個(或多個)導致故障。 – Chrille
但是使用WhenAll必須等待所有任務完成時。然後我可以遍歷所有任務並檢查成功或失敗。如果第一次驗證需要15秒,第二次驗證2秒會怎麼樣?我將等待15秒以顯示驗證結果。我需要立即顯示結果。 – JuP