using System.Threading.Tasks;
public static async Task Main()
var provider = new InstanceProvider();
ThreadPool.QueueUserWorkItem(s => Console.WriteLine(provider.GetInstance()));
ThreadPool.QueueUserWorkItem(s => Console.WriteLine(provider.GetInstance()));
ThreadPool.QueueUserWorkItem(s => Console.WriteLine(provider.GetInstance()));
ThreadPool.QueueUserWorkItem(s => Console.WriteLine(provider.GetInstance()));
public class InstanceProvider
private Object _instance;
public Object GetInstance()
_instance = CreateInstance();
private Object CreateInstance()
return Thread.CurrentThread.ManagedThreadId;