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