示例#1
0
        public void LockTestLoop()
        {
            const int looNb = 1000000;

            _spinLockTest1Counter = 0;

            var mySpinLock = new SpinLock();

            //var mySpinLock = new NoLock(); // fails with NoLock

            for (var i = 0; i < looNb; i++)
            {
                InnerTest(mySpinLock);
            }

            int j;

            for (j = 0; j < 10000; j++)
            {
                if (_spinLockTest1Counter == looNb)
                {
                    break;
                }
                Thread.Sleep(1);
            }
            Console.WriteLine("Main thread waited {0} ms", j.ToString());
            Assert.IsTrue(_spinLockTest1Counter == looNb);
        }
示例#2
0
        public void LockTestLoop()
        {
            const int looNb = 1000000;

            _spinLockTest1Counter = 0;

            var mySpinLock = new SpinLock();
            //var mySpinLock = new NoLock(); // fails with NoLock

            for (var i = 0; i < looNb; i++)
                InnerTest(mySpinLock);

            int j;
            for (j = 0; j < 10000; j++ )
            {
                if (_spinLockTest1Counter == looNb)
                    break;
                Thread.Sleep(1);
            }
            Console.WriteLine("Main thread waited {0} ms", j.ToString());
            Assert.IsTrue(_spinLockTest1Counter == looNb);
        }