static void ThreadFileDeal(object i)
{
string strGet = (string)i;
for (int a = 0; a < 5; a++)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString() + strGet);
Thread.Sleep(1000);
}
}
static void WaitCallBackMethod(object param)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine(String.Format("Thread {0} is running", param));
Thread.Sleep(1000);
}
}
static void Main(string[] args)
{
int ncount = 0;
while(ncount<100)
{
ncount++;
ThreadPool.SetMaxThreads(20, 20);
ThreadPool.QueueUserWorkItem(WaitCallBackMethod, ncount);//第一个启动的方法
ThreadPool.QueueUserWorkItem(ThreadFileDeal,"temp");//第二个启动的方法
}
Console.Read();
}
{
string strGet = (string)i;
for (int a = 0; a < 5; a++)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString() + strGet);
Thread.Sleep(1000);
}
}
static void WaitCallBackMethod(object param)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine(String.Format("Thread {0} is running", param));
Thread.Sleep(1000);
}
}
static void Main(string[] args)
{
int ncount = 0;
while(ncount<100)
{
ncount++;
ThreadPool.SetMaxThreads(20, 20);
ThreadPool.QueueUserWorkItem(WaitCallBackMethod, ncount);//第一个启动的方法
ThreadPool.QueueUserWorkItem(ThreadFileDeal,"temp");//第二个启动的方法
}
Console.Read();
}
本文演示了如何使用C#中的线程池来并行执行多个任务,包括文件处理任务和等待回调方法。通过设置最大线程数并排队用户工作项,展示了线程池管理并发操作的方法。
1133

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



