コード例 #1
0
 public void Run()
 {
     try
     {
         barrier.Await();
         long i    = iters;
         int  y    = 0;
         int  succ = 0;
         while (i > 0)
         {
             for (int k = 0; k < CASLoops.innerPerOuter; ++k)
             {
                 int x = obj.get_Renamed();
                 int z = y + LoopHelpers.compute6(x);
                 if (obj.compareAndSet(x, z))
                 {
                     ++succ;
                 }
                 y = LoopHelpers.compute7(z);
             }
             i -= CASLoops.innerPerOuter;
         }
         CASLoops.sum.AddDeltaAndReturnPreviousValue(obj.get_Renamed());
         CASLoops.successes.AddDeltaAndReturnPreviousValue(succ);
         barrier.Await();
     }
     catch (System.Exception ie)
     {
         return;
     }
 }