使用线程池创建新任务

    技术2022-07-11  116

    1.代码

    class RunningAShread { public const int nums=200; private void DoWork(object obj) { for (int i = 0; i < nums; i++) { Console.Write(obj.ToString()); } } public void Run() { Thread backgroundThread = new Thread(new ThreadStart(() => { for (int i = 0; i < nums; i++) { Console.Write('+'); } })); backgroundThread.Start(); backgroundThread.Priority = ThreadPriority.AboveNormal; ThreadPool.QueueUserWorkItem((obj) => { for (int i = 0; i < nums; i++) { Console.Write(obj.ToString()); } }, "#"); Console.WriteLine("Thread is Alive:"+backgroundThread.IsAlive.ToString()); backgroundThread.Join(5);//最多等待主线程100ms过期不候,如果将这个时间设置短一点会看到效果的 for (int i = 0; i < nums; i++) { Console.Write('-'); } Console.WriteLine("Thread is Alive:" + backgroundThread.IsAlive.ToString()); } }

    2.总结

    这里使用线程池创建匿名委托新建线程,比新写一个方法要简便得多。

    ThreadPool.QueueUserWorkItem((obj) => { for (int i = 0; i < nums; i++) { Console.Write(obj.ToString()); } }, "#");
    Processed: 0.012, SQL: 9