Sınıf System.Threading.Tasks.Task
yeni yöntemi sunuyor WhenEach()
Bir IAsyncEnumerable<Task>
teslimat ve bir foreach
-Belirtilen faaliyetlerden biri mevcut olur olmaz yük akar.
Holger Schwichtenberg, 53 ünlü uzmanla tavsiye ve eğitim yoluyla ve yazılımın geliştirilmesinde çok sayıda orta ve büyük şirketi destekleyen uzmanlar ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası uzman konferansındaki görünüşleri, 90'dan fazla uzman kitabı ve 1.500'den fazla uzman makalesi ile Holger Schwichtenberg, Almanya'daki .NET ve Web teknikleri için en iyi uzmanlardan biridir.
Bu: İş, bir ilk sonuç olur olmaz, yalnızca tüm sonuçlar yöntemde olduğu gibi değil, başlar. WhenAll()
Bu klasik .NET 4.5 çerçevesinden vardı.
Aşağıdaki kodu kullandı WhenEach()
Birkaç HTTP isteğinin durumunu kademeli olarak belirlemek için:
public async Task Run()
{
CUI.Demo(nameof(FCL9_Task)+ " WhenEach()");
using HttpClient http = new();
Task<HttpResponseMessage> t1 = http.GetAsync("http://CNN.com");
Task<HttpResponseMessage> t2 = http.GetAsync("http://microsoft.com");
Task<HttpResponseMessage> t3 = http.GetAsync("http://www.dotnetframework.de");
Task<HttpResponseMessage> t4 = http.GetAsync("http://www.dotnet-lexikon.de");
Task<HttpResponseMessage> t5 = http.GetAsync("http://www.dotnet9.de");
// Starte einen Task, der 5 Sekunden braucht und HttpResponseMessage zurückgibt
Task<HttpResponseMessage> t6 = Task.Delay(5000).ContinueWith(t => new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError) { RequestMessage = new HttpRequestMessage() { RequestUri = new Uri("http://unsinn") } });
await foreach (Task<HttpResponseMessage> t in Task.WhenEach(t1, t2, t3, t4, t5, t6))
{
Console.WriteLine($"{DateTime.Now.ToLongTimeString()}: {t.Result?.RequestMessage?.RequestUri} = {t?.Result?.StatusCode}");
}
}
(RME)
Bir yanıt yazın