使用线程池需要注意的事项:
1、线程池中的所有线程都是后台线程 。 如果进程的所有前台线程都结束了,所有的后台线程就会停止。 不能把入池的线程改为前台线程 。
2、不能给入池的线程设置优先级或名称。
3、入池的线程只能用于时间较短的任务。 如果线程要一直运行就应使用Thread类创建一个线程。
=======================================================================================================
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace 线程开启方式_线程池 { class Program { static void Test(object o) { Console.WriteLine("线程开始"+Thread.CurrentThread.ManagedThreadId);//读出线程 的ID号 Thread.Sleep(2000);//暂停2000毫秒 Console.WriteLine("线程结束" + Thread.CurrentThread.ManagedThreadId); } static void Main(string[] args) {//连续创建几个线程: ThreadPool.QueueUserWorkItem(Test); ThreadPool.QueueUserWorkItem(Test); ThreadPool.QueueUserWorkItem(Test); ThreadPool.QueueUserWorkItem(Test); ThreadPool.QueueUserWorkItem(Test); ThreadPool.QueueUserWorkItem(Test); ThreadPool.QueueUserWorkItem(Test); Console.ReadKey(); } } }
运行结果: