如题:本人想请教一下线程池的问题,如果我在
IList<EmailServer> list = EmailServerManager.GetAllEmailServer();
foreach (EmailServer emailServer in list)
{
上面这个Foreach循环里根据list.count,即如果list有多少条数据,就在线程池里配置多少个线程,不知该怎样做,望高手指教一下
IList<EmailServer> list = EmailServerManager.GetAllEmailServer();
foreach (EmailServer emailServer in list)
{
上面这个Foreach循环里根据list.count,即如果list有多少条数据,就在线程池里配置多少个线程,不知该怎样做,望高手指教一下
foreach (EmailServer emailServer in list)
{
//用ThreadPool可以用以下形式,排队任务,线程池空闲时自动执行;
ThreadPool.QueueUserWorkItem(emailServer.sendMail);
//或者用新线程Thread,有参数传入时,可以用ParameterizedThreadStart代替ThreadStart
Thread sendThreed = new Thread(new ThreadStart(emailServer.sendMail));
sendThreed.IsBackground = true; //后台运行
sendThreed.Start(); }
我先说下我的功能
IList<EmailServer> list = EmailServerManager.GetAllEmailServer();
foreach (EmailServer emailServer in list)
{
EmailServer是邮件服务器表,里面保存的是邮箱的基本信息,我想根据list。count来调用线程池的线程,然后去执行同一个方法,收邮件
我想我说得已经比较明白了。根据上面的代码块再说几句
foreach (EmailServer emailServer in list)
{
//用ThreadPool可以用以下形式,排队任务,线程池空闲时自动执行;
ThreadPool.QueueUserWorkItem(这里是你收邮件的函数);
//这种方法,只返回一个布尔值,是否注册成功。线程是线程池自动分配的,你无法跟踪线程的状态
//或者用新线程Thread,有参数传入时,可以用ParameterizedThreadStart代替ThreadStart
Thread getMailThread = new Thread(new ThreadStart(这里是你收邮件的函数));
getMailThread.IsBackground = true; //后台运行
getMailThread.Start();
//这种方法,你自己创建线程getMailThread,若有要求可以跟踪、管理线程的状态,可以自己开一个线程数组来存储各线程。
}不知道,楼主还有什么看不明白的地方?