Как реализовать Task.WhenAny () с предикатом [закрыто]

Я хочу выполнить несколько задач асинхронно, каждая задача будет выполнять http-запрос, который может либо генерировать исключение, либо завершаться безопасно. Мне нужно закончить, когда первая задача успешно завершена или когда все задачи не удалось. пожалуйста посоветуй.