コード例 #1
0
 public void AdquiresTheLockDuringTheExecutionAndReleaseItAtTheEnd()
 {
     var context = new SynchronizationContext();
     Assert.IsFalse(context.IsLockAcquired);
     context.Execute(() => Assert.IsTrue(context.IsLockAcquired));
     Assert.IsFalse(context.IsLockAcquired);
 }
コード例 #2
0
            public void AdquiresTheLockDuringTheExecutionAndReleaseItAtTheEnd()
            {
                var context = new SynchronizationContext();

                Assert.IsFalse(context.IsLockAcquired);
                context.Execute(() => Assert.IsTrue(context.IsLockAcquired));
                Assert.IsFalse(context.IsLockAcquired);
            }
コード例 #3
0
            public void NestedExecuteCallAreAllowed()
            {
                var context = new SynchronizationContext();
                Assert.IsFalse(context.IsLockAcquired);
                int expected = new Random().Next(50, 100);
                int result = context.Execute(() =>
                    {
                        int nestedResult = context.Execute(() =>
                            {
                                Assert.IsTrue(context.IsLockAcquired);
                                return expected;
                            });
                        Assert.IsTrue(context.IsLockAcquired);
                        return nestedResult;
                    });

                Assert.IsFalse(context.IsLockAcquired);
                Assert.AreEqual(expected, result);
            }
コード例 #4
0
            public void NestedExecuteCallAreAllowed()
            {
                var context = new SynchronizationContext();

                Assert.IsFalse(context.IsLockAcquired);
                int expected = new Random().Next(50, 100);
                int result   = context.Execute(() =>
                {
                    int nestedResult = context.Execute(() =>
                    {
                        Assert.IsTrue(context.IsLockAcquired);
                        return(expected);
                    });
                    Assert.IsTrue(context.IsLockAcquired);
                    return(nestedResult);
                });

                Assert.IsFalse(context.IsLockAcquired);
                Assert.AreEqual(expected, result);
            }
コード例 #5
0
 public void AdquiresTheLockDuringTheExecutionAndReleaseItAtTheEndAndReturnAValue()
 {
     var context = new SynchronizationContext();
     Assert.IsFalse(context.IsLockAcquired);
     int expected = new Random().Next(50, 100);
     int result = context.Execute(() =>
         {
             Assert.IsTrue(context.IsLockAcquired);
             return expected;
         });
     Assert.IsFalse(context.IsLockAcquired);
     Assert.AreEqual(expected, result);
 }
コード例 #6
0
            public void AdquiresTheLockDuringTheExecutionAndReleaseItAtTheEndAndReturnAValue()
            {
                var context = new SynchronizationContext();

                Assert.IsFalse(context.IsLockAcquired);
                int expected = new Random().Next(50, 100);
                int result   = context.Execute(() =>
                {
                    Assert.IsTrue(context.IsLockAcquired);
                    return(expected);
                });

                Assert.IsFalse(context.IsLockAcquired);
                Assert.AreEqual(expected, result);
            }