using System.Threading.Tasks;
static void Main(string[] args)
Console.WriteLine($"End of main");
static async Task DoWork()
await Task.Delay(TimeSpan.FromHours(1));
static async Task DoWorkTask()
Console.WriteLine("Work done");
static void NestedLockTask()
Console.WriteLine("Locked");
static void LockExceptionTask()
var lockObj = new object();
bool lockAcquired = Monitor.TryEnter(lockObj);
Console.WriteLine($"Finally:: Lock acquired: {lockAcquired}");