Зарегистрировать новую тему для уже определенного барьера
Есть ли способ добавить поток к уже заданному барьеру?
Сценарий: у меня в определенный момент времени N потоков, и код объявляет Barrier
для того, чтобы справиться с ними.
Проблема в том, что иногда мне может понадобиться другой новый поток для обработки внутри этого экземпляра барьера, но барьер уже объявлен только с N потоками.
Пример:
barrier = new Barrier(N, (sprint) => {
Console.WriteLine($"Current sprint: {sprint.CurrentPhaseNumber}")
});
После объявления мне нужно как-то обновить его с N+1 темы, какие-либо предложения?
1 ответ
Решение
Полная документация по барьеру находится здесь: https://docs.microsoft.com/en-us/dotnet/standard/threading/barrier
В двух словах, вы можете добавить или удалить участника в любое время, позвонив соответственно AddParticipant
или же RemoveParticipant
,