public void ConcurrentInt64GetAndSet()
        {
            var c      = new ConcurrentInt64(22);
            var result = c.GetAndSet(38);

            Assert.AreEqual(result, 22);
            Assert.AreEqual(38, (Int64)c);
        }
예제 #2
0
 internal void Calculate()
 {
     if (!_container.Cumulative)
     {
         Value = _internalRunCount.GetAndReset();
         Max   = _internalMax.GetAndSet(0);
         Min   = _internalMax.GetAndSet(0);
         var intervals = _container.GetInterval(_container.LastCalculation);
         Avg = _container.GetAvg(Value, intervals);
     }
     else
     {
         Max   = _internalMax.Value;
         Min   = _internalMax.Value;
         Value = _internalRunCount.Value;
         Avg   = _container.GetAvg(Value);
     }
 }