Private Async Function RunTest() As Task Dim files As List(Of String) = Directory.GetFiles(Environment.CurrentDirectory).ToList() Dim Infos = files.Select(Function(file) New FileInfo(file)) Dim tasks = Infos.Select(Function(fileInfo) ProcessFileAsync(fileInfo)).ToList While tasks.Count > 0 Dim finishedTask As Task(Of FileInfo) = Await Task.WhenAny(tasks) ' ***Remove the selected task from the list so that you don't process it more than once. tasks.Remove(finishedTask) ' ***Await the first completed task and display the results. Dim result = Await finishedTask Console.WriteLine($"{vbCrLf}Result: {result}{vbCrLf}") Console.WriteLine($"> {finishedTask.Result.Name} ist fertig!") End While Dim results = Await Task.WhenAll(tasks) Console.WriteLine($"> Alle Tasks sind fertig!") End Function