Exemple #1
0
            public IEnumerable <Task <double> > GetValues()
            {
                while (true)
                {
                    yield return(Task.FromResult(-1d));

                    yield return(SensorData.GetDataAsync("iddqd"));

                    yield return(SensorData.GetDataAsync("idkfa"));
                }
            }
Exemple #2
0
        public async Task Tasks_FromAsync()
        {
            var ids = new string[] { "iddqd", "idkfq", "abba5", "acdc1" };

            var tasks = new List <Task <double> >();

            foreach (var id in ids)
            {
                var dataTask = SensorData.GetDataAsync(id);
                tasks.Add(dataTask);
            }

            var results = await Task.WhenAll(tasks);
        }
Exemple #3
0
        public async Task Tasks_FromAsync()
        {
            var ids = new string[] { "iddqd", "idkfq", "abba5", "acdc1" };

            var tasks = new List <Task <double> >();

            foreach (var id in ids)
            {
                var dataTask = SensorData.GetDataAsync(id);
                tasks.Add(dataTask);
            }

            var results = await Task.WhenAll(tasks);

            var tasksLinq = ids.Select(e => SensorData.GetSensorAsync(e)).ToList();

            var results2 = await Task.WhenAll(tasksLinq);

            // Select is lazy, but now tasksLinq is a List
            var high = tasksLinq.Where(e => e.Result.Data > 10).ToList();
        }
Exemple #4
0
        public async Task AsyncAwait_Comparison()
        {
            // Warmup
            SensorData.GetDataSync("iddqd");
            await SensorData.GetDataAsync("iddqd");

            var sw = Stopwatch.StartNew();

            var syncResult1 = SensorData.GetDataSync("iddqd");
            var syncResult2 = SensorData.GetDataSync("idkfa");
            var syncResult3 = SensorData.GetDataSync("abba5");
            var syncResult4 = SensorData.GetDataSync("acdc1");

            var syncTime = sw.ElapsedMilliseconds;

            sw = Stopwatch.StartNew();

            var r1 = await SensorData.GetDataAsync("iddqd");

            var r2 = await SensorData.GetDataAsync("idkfa");

            var r3 = await SensorData.GetDataAsync("abba5");

            var r4 = await SensorData.GetDataAsync("acdc1");

            var asyncTime = sw.ElapsedMilliseconds;

            sw = Stopwatch.StartNew();

            var t1 = SensorData.GetDataAsync("iddqd");
            var t2 = SensorData.GetDataAsync("idkfa");
            var t3 = SensorData.GetDataAsync("abba5");
            var t4 = SensorData.GetDataAsync("acdc1");

            var results = await Task.WhenAll(t1, t2, t3, t4);

            var awaitTime = sw.ElapsedMilliseconds;
        }