How to implement Task.WhenAny() with a predicate
Wait for any task and return the task if the condition is met. Otherwise wait again for the other tasks until there is no more task to wait for. public static async Task<Task> WhenAny( IEnumerable<Task> tasks, Predicate<Task> condition ) { var tasklist = tasks.ToList(); while ( tasklist.Count > 0 ) { var task = await … Read more