C# run multiple tasks in parallel and get results