using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static int i = 1;
static int MaxThreadCount = 500;
static void OutPut(object obj)
{
Console.Write("\r申请了:{0}个工作线程", i);
i++;;
Thread.Sleep(1000000);//设置一个很大的等待时间,让每个申请的线程都一直执行
}
static void Main(string[] args)
{
int j;
Console.Write("是否先申请500个空闲线程以保证前500个线程在线程池中开始就有线程用(Y/N)?");
//如果这里选择N,那么前两个任务是用的线程池默认空闲线程(可以用ThreadPool.GetMinThreads得到系统默认最小空闲线程数为2)申请立即得到满足,
//然而由于每个线程等待时间非常大都不会释放当前自己持有的线程,因此线程池中已无空闲线程所用,后面的任务需要
本文详细介绍了C#编程中如何有效地利用线程池进行多任务处理,包括创建线程池任务、参数传递、任务管理和性能优化等方面,旨在帮助开发者提升WinForm应用程序的并发性能。
订阅专栏 解锁全文
2951

被折叠的 条评论
为什么被折叠?



