Exemple #1
0
        public void TestForeach()
        {
            const int numValues = 100000;

            Scheduler.WaitFor(WriteLotsOfValuesInBatch(Tangle, numValues, -1));

            var keys = new List <int>();

            for (int i = 0; i < numValues; i += 2)
            {
                keys.Add(i);
            }

            long startTime = Time.Ticks;
            var  bag       = new ConcurrentBag <int>();
            var  fForeach  = Tangle.ForEach(keys, (key, value) => bag.Add(value));

            Scheduler.WaitFor(fForeach);
            decimal elapsedSeconds = (decimal)(Time.Ticks - startTime) / Time.SecondInTicks;

            Console.WriteLine(
                "{0} values in ~{1:00.000} second(s) at ~{2:00000.00} values/sec.",
                keys.Count, elapsedSeconds, keys.Count / elapsedSeconds
                );

            Assert.AreEqual(keys.Count, bag.Count());

            Assert.AreEqual(
                keys.OrderBy((k) => k).ToArray(),
                bag.OrderBy((k) => k).ToArray()
                );
        }