public static void IsEntered_WhenHeldBySomeoneElse_ThrowsSynchronizationLockException()
{
var obj = new object();
var b = new Barrier(2);
Task t = Task.Run(() =>
{
lock (obj)
{
b.SignalAndWait();
Assert.True(Monitor.IsEntered(obj));
b.SignalAndWait();
}
});
b.SignalAndWait();
Assert.False(Monitor.IsEntered(obj));
b.SignalAndWait();
t.Wait();
}