コード例 #1
0
        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);
        }