public void Start(CancellationToken cancellationToken) { Task.Run(async() => { while (true) { var meerObjecten = queue.Take(cancellationToken); topTen.AddWoonObjecten(meerObjecten); outputAction(topTen.GetTopTen()); progress.Print(); if (useDelay) { try { await Task.Delay(300, cancellationToken); } catch (OperationCanceledException) { // stopping is enough } } } }); }