using System.Threading.Tasks;
public static void Main()
public static void new_thread_ThreadPool_QueueUserWorkItem()
Console.WriteLine("call new_thread_ThreadPool_QueueUserWorkItem");
Console.WriteLine("1" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
ThreadPool.QueueUserWorkItem( _ =>
Console.WriteLine("2" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("3" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("4" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("5" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
public static void new_thread_Task_Run()
Console.WriteLine("call new_thread_Task_Run");
Console.WriteLine("1" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("2" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("3" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("4" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("5" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
public static void new_thread_native()
Console.WriteLine("call new_thread_Task_Run");
Console.WriteLine("1" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Thread t1 = new Thread( () =>
Console.WriteLine("2" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId + ", " + System.Threading.Thread.CurrentThread.IsBackground);
Console.WriteLine("3" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("4" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("5" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("6" + "-tid:" + System.Threading.Thread.CurrentThread.ManagedThreadId);