System.Threading.Tests.MonitorTests.DeepRecursion C# (CSharp) Method

DeepRecursion() private method

private DeepRecursion ( string &message ) : void
message string
return void
        public static void DeepRecursion(ref string message)
        {
            var obj = new object();
            var hc = obj.GetHashCode();
            // reduced from "(long)int.MaxValue + 2;" to something that will return in a more meaningful time
            const int limit = 10000;

            for (var i = 0L; i < limit; i++)
            {
                Assert.True(Monitor.TryEnter(obj));
            }

            for (var j = 0L; j < (limit - 1); j++)
            {
                Monitor.Exit(obj);
                Assert.True(Monitor.IsEntered(obj));
            }

            Monitor.Exit(obj);
            Assert.True(Monitor.IsEntered(obj));
        }