using System;
using System.Threading;
public class LockStatement
{
public static void Main()
object gate = new object();
int n = 0;
var up = new Thread(() =>
for (int i = 0; i < 1000; i++)
Monitor.Enter(gate);
try
n++;
}
finally
Monitor.Exit(gate);
});
up.Start();
n--;
up.Join();
Console.WriteLine(n);