using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
private static object syncObject = new object();
private static void Write()
{
lock (syncObject)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("test");
}
}
static void Main(string[] args)
{
lock (syncObject)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Task.Run(() => Write());
Thread.Sleep(3000);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKY2xhc3MgUHJvZ3JhbQp7CiAgICBwcml2YXRlIHN0YXRpYyBvYmplY3Qgc3luY09iamVjdCA9IG5ldyBvYmplY3QoKTsKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgV3JpdGUoKQogICAgewogICAgICAgIGxvY2sgKHN5bmNPYmplY3QpCiAgICAgICAgewogICAgICAgIAlDb25zb2xlLldyaXRlTGluZShUaHJlYWQuQ3VycmVudFRocmVhZC5NYW5hZ2VkVGhyZWFkSWQpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgidGVzdCIpOwogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgbG9jayAoc3luY09iamVjdCkKICAgICAgICB7CiAgICAgICAgCUNvbnNvbGUuV3JpdGVMaW5lKFRocmVhZC5DdXJyZW50VGhyZWFkLk1hbmFnZWRUaHJlYWRJZCk7CiAgICAgICAgICAgIFRhc2suUnVuKCgpID0+IFdyaXRlKCkpOwogICAgICAgICAgICBUaHJlYWQuU2xlZXAoMzAwMCk7CiAgICAgICAgfQogICAgfQp9