做一个邮件群发的软件,邮件列表在数据库中,想采用多线程来发送邮件,请给我给思路!!!

解决方案 »

  1.   

    伪代码://先开一个后台线程
    Manage manage = new Manage();
    Thread myThread = new Thread(new ThreadStart(manage.Run()));
    myThread.Start();//由这个后台线程进行线程管理
    class Manage
    {
         ArrayList list = new ArrayList();   //搞个容器放线程
         void Manage.Run()
         {
              object[] = arrayData;
              ...取数据
              foreach (object obj in arrayData)
              {
                   //判断有多少线程在发,如果达到最大则等待
                   while (list.Count >= 100)
                   {
                        Thread.Current.Sleep(1000);
                   }
                   MySend my = new MySend(obj);
                   Thread th = new Thread(new ThreadStart(my.Run));
                   th.Start();
              }
         }
    }
    class MySend
    {
         ...
         public MySend(...发信的参数信息)
         {
              ...
         }
         void Run()
         {
              ...//发送操作
         }
    }
      

  2.   

    多线程,
    http://blog.csdn.net/zhzuo/archive/2004/06/10/22037.aspx
    发,
    http://www.systemwebmail.com/default.aspx
      

  3.   

    hainang1234(鼠·神·泪) 的思路不错,
    我刚做了一个多线程接收邮件的,忘了加上最大线程数判断了,呵呵,回头补上