Junior — Middle
როგორ განვახორციელოთ ყველა დავალების დასრულების მოლოდინი დავალებების ნაკრებში?
sobes.tech AI
პასუხი AI-სგან
C# ენაში, რათა დაელოდოთ ყველა ამოცანის დასრულებას ერთ ჯგუფში, შეგიძლიათ გამოიყენოთ მეთოდი Task.WhenAll. ეს მეთოდი იღებს ამოცანების მასივს ან კოლექციას და აბრუნებს ამოცანას, რომელიც დასრულდება, როდესაც ყველა გადაცემული ამოცანა დასრულდება.
მაგალითი:
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// რაიმე სამუშაო
Console.WriteLine($"მუშაობა {id} დასრულდა");
}
თუ არ იყენებთ async/await-ს, შეგიძლიათ გამოიძახოთ Task.WaitAll(tasks), რომელიც ბლოკავს მიმდინარე ნაკადს, სანამ ყველა ამოცანა არ დასრულდება.