Зарегистрировать новую тему для уже определенного барьера

Есть ли способ добавить поток к уже заданному барьеру?

Сценарий: у меня в определенный момент времени 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,

Другие вопросы по тегам