using System;
namespace System.Threading
{
static class Monitor
{
public static void Enter(object obj, ref bool locked)
{
locked = true;
Console.WriteLine("Enter");
}
public static void Exit(object obj)
{
Console.WriteLine("Exit");
}
}
}
namespace MonitorEnterTest
{
class Program
{
static void Main(string[] args)
{
var syncRoot = new object();
lock (syncRoot)
{
}
Console.WriteLine("Press any key!!!");
Console.ReadKey();
}
}
}
dXNpbmcgU3lzdGVtOwoKbmFtZXNwYWNlIFN5c3RlbS5UaHJlYWRpbmcKewogICAgc3RhdGljIGNsYXNzIE1vbml0b3IKICAgIHsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgRW50ZXIob2JqZWN0IG9iaiwgcmVmIGJvb2wgbG9ja2VkKQogICAgICAgIHsKICAgICAgICAgICAgbG9ja2VkID0gdHJ1ZTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkVudGVyIik7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBFeGl0KG9iamVjdCBvYmopCiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRXhpdCIpOwogICAgICAgIH0KICAgIH0KfQoKbmFtZXNwYWNlIE1vbml0b3JFbnRlclRlc3QKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzeW5jUm9vdCA9IG5ldyBvYmplY3QoKTsKICAgICAgICAgICAgbG9jayAoc3luY1Jvb3QpCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJQcmVzcyBhbnkga2V5ISEhIik7CiAgICAgICAgICAgIENvbnNvbGUuUmVhZEtleSgpOwogICAgICAgIH0KICAgIH0KfQo=