Sometimes you want to start multiple tasks in parallel, and you only care about the first one that finishes. WhenAny is great in that scenario…except when the tasks are of different types. But with a bit of pattern matching, you can get it working.