Sobes.tech
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), რომელიც ბლოკავს მიმდინარე ნაკადს, სანამ ყველა ამოცანა არ დასრულდება.