Для того чтобы выполнить действие после завершения всех задач в C#, вы можете использовать `Task.WhenAll`, который позволяет ждать завершения нескольких задач. Вот пример кода, который демонстрирует, как это можно сделать:
```csharp
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Создаем список задач
List<Task> tasks = new List<Task>
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
// Ождать завершения всех задач
await Task.WhenAll(tasks);
// Выполнить действие после завершения всех задач
Console.WriteLine("Как выполнить это действие после завершения всех задач ?");
}
static void DoWork(int id)
{
// Симуляция работы
Console.WriteLine($"Задача {id} выполняется...");
Task.Delay(1000).Wait(); // Задержка для имитации длительной работы
Console.WriteLine($"Задача {id} завершена.");
}
}
```
В этом примере:
1. Мы создаем список задач, каждая из которых работает в отдельной задаче.
2. С помощью `await Task.WhenAll(tasks)` мы ждем, пока все задачи завершатся.
3. После этого выполняется команда `Console.WriteLine`, которая печатает сообщение после завершения всех задач.
Обратите внимание, что основной метод `Main` отмечен как `async`, что позволяет использовать оператор `await` для ожидания завершения задач.