Exemple #1
0
        public async Task TaskTests()
        {
            Debug.WriteLine("Testing tasks...");
            var winner = await AsyncTasks.FirstSuccessfulWithin(BuildTasks(), TimeSpan.FromMilliseconds(2000));

            Assert.AreEqual("done sleeping", winner);
            try {
                string noWinners = await AsyncTasks.FirstSuccessfulWithin(BuildTasks(), TimeSpan.FromMilliseconds(200));

                Debug.WriteLine(noWinners);
                Assert.Fail("Expected timeout, got success.");
            } catch (TimeoutException) {
            }
            try {
                var noWinners = await AsyncTasks.FirstSuccessfulWithin(BuildTasks().Skip(2).ToList(), TimeSpan.FromMilliseconds(5000));

                Assert.Fail("Expected failure, got success.");
            } catch (NoResultsException) {
            }
        }
        private Task <T> TestIPs <T>(IEnumerable <string> ips, Func <string, Func <CancellationToken, Task <T> > > test)
        {
            var tests = ips.Select(test).ToList();

            return(AsyncTasks.FirstSuccessfulWithin <T>(tests, TimeSpan.FromSeconds(8)));
        }