예제 #1
0
        public void CallParallelThreadSafeTest()
        {
            int?      sum      = 0;
            Stopwatch sw       = Stopwatch.StartNew();
            long      duration = ActionTools.CallParallelThreadSafe(100,
                                                                    () => { sum += 2; Task.Delay(10).Wait(); },
                                                                    () => { sum -= 1; Task.Delay(10).Wait(); }
                                                                    );

            var elapsed = sw.ElapsedMilliseconds;

            Assert.AreEqual(100, sum);
            Assert.IsTrue(Math.Abs(duration - elapsed) < TestTimingTolerance);
        }