public void Test_issue73_async_non_blockable() { var connector = new CustomerConnector(); var searchSettings = new CustomerSearch(); searchSettings.Limit = 2; var watch = new Stopwatch(); watch.Start(); var runningTasks = new List <Task <EntityCollection <CustomerSubset> > >(); for (int i = 0; i < 40; i++) { runningTasks.Add(connector.FindAsync(searchSettings)); } Console.WriteLine(@"Thread free after: " + watch.ElapsedMilliseconds); Assert.IsTrue(watch.ElapsedMilliseconds < 1000); watch.Start(); foreach (var runningTask in runningTasks) { var result = runningTask.GetAwaiter().GetResult(); Assert.IsNotNull(result); } watch.Stop(); Console.WriteLine(@"Total time: " + watch.ElapsedMilliseconds); }