Циклический барьер, как следует из названия, может использоваться в циклах. Например: я являюсь компанией, которая ищет N резюме из различных фидов порталов вакансий. У меня есть набор навыков, содержащий навыки, отсортированные в порядке приоритета. Для бывшей Java, C #, Python. Я хочу найти N резюме, совпадающее с набором навыков java, но если я не найду требуемого нет резюме, я снова ищу следующий набор навыков и т. д.
Я создаю работника, каждый из которых просматривает резюме в назначенных каналах. Оба работника начнут с поиска основного набора навыков в своих лентах вакансий.
После выполнения поиска работник проверит, были ли найдены N резюме. Если найден, работник сбросит шлагбаум и вернется. Иначе он будет ждать, пока другой работник завершит работу. Если все еще N резюме не были найдены, поиск будет возобновлен снова, на следующем навыке в наборе навыков. Таким образом, поиск можно вызывать рекурсивно / циклически, не создавая новый циклический барьер.
Используйте API контактов Google , там есть образец C #.
Взгляните на библиотеку .Net с открытым исходным кодом gmailapi . GmailAgent имеет метод GetContacts для получения всех контактов.