摘要:
线程池 创建线程是需要时间的。许多应用程序使用多个线程,但这些线程经常在休眠状态中耗费大量的时间来等待事件发生。 为了简化对这些线程的管理,.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。 线程池线程都是后台线程。每个线程都使用默认堆栈大小,以默认的优先级运行,并处于多线程单元中。 ThreadPool类会在需要时增减池中线程的个数,直到最大的线程数。线程的数目永远不会超过最大值。超过最大值的其他线程可以排队,但它们要等到其他线程完成后才启动。 池中的最大线程数是可配置的,也可以指定在创建线程池时立即启动的最小线程数。在双核CPU中,默认设置为50个工作线 阅读全文
摘要:
前台线程和后台线程 线程默认为前台线程,这意味着任何前台线程在运行都会保持程序存活。 后台线程:只要有一个前台线程在运行,应用程序的进程就在运行。如果多个前台线程在运行,而Main()方法结束了,应用程序的进程就是激活的,直到所有前台线程完成其任务为止。 前台线程和后台线程的唯一的区别是— 后台线程不会阻止进程终止。 在默认情况下,用Thread 类创建的线程都是前台线程。线程池中的线程总是后台线程。 在用Thread类创建线程时,可以设置属性IsBackground,以确定该线程是(false)前台线程还是(true)后台线程。using System.Threading;namespace 阅读全文