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); }