有一个邮件列表
我在主程序中通过循环,不段的开线程去执行发送邮件的方法,,发送邮件的方法在一个单独的类中请问我怎么将发送成败于否表现出来伪代码如下:
main()
{
   foreach(DataRow dr in ds.Tables["UserList"].Rows)
{
while (threadno>= 10)
{
Thread.Sleep(1000);
}
MySend my = new MySend();
Thread th = new Thread(new ThreadStart(my.Run));

th.Start();
threadno++;

}
}
发送邮件的类public class MySend
{
   public MySend()
   {
   }   public void/string Run()
   {   }
}

解决方案 »

  1.   

    可以利用同步回调来做到,具体请参考MSDN中的AsyncCallback 委托。
      

  2.   

    异步回调好像也不能截到错误吧,我觉得应当在线程中截取错误先加一个全局的错误消息列表ArrayList errors = new ArrayList.Synchronized(new ArrayList());每个线程中 try/catch, catch 后调用 errors.Add(e.ToString());最后所有线程执行完成后,得到errors集合中的所有内容就是错误消息如果要在发生错误时显示错误,那也应当是在catch时向系统全局报告