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), το οποίο μπλοκάρει το τρέχον νήμα μέχρι να ολοκληρωθούν όλες οι εργασίες.