如何使用多线程?

taz01 2010-09-23 04:58:47
发送邮件相关的方法已经写好了,可以发送了!
问题是现在的邮件很多,用for来做的话很不好!
谁能给个用多线程群发的demo?
...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
taz01 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wwfgu00ing 的回复:]

foreach (string name in mailNames)
{
mail.CC.Add(new MailAddress(address, displayName)); //收件人地址的集合
}


[/Quote]
这样的话,如果第一个发不出去,后面的也送不出去,而且这个过程也很久,很慢!
非最佳方案!
hnsdwhl 2010-09-23
  • 打赏
  • 举报
回复
学习一下
孟子E章 2010-09-23
  • 打赏
  • 举报
回复
wwfgu00ing 2010-09-23
  • 打赏
  • 举报
回复

MailAddress from = new MailAddress("070812041@163.com", "东东"); //邮件的发件人,后面为显示的名字
MailMessage mail = new MailMessage();
mail.Subject = txtSubject.Text; //设置邮件的标题
mail.From = from; //设置邮件的发件人

//多人发送
string address = "";
string displayName = "";
string[] mailNames = (txtMailTo.Text + ";").Split(';');
foreach (string name in mailNames)
{
if (name != string.Empty)
{
if (name.IndexOf('<') > 0)
{
displayName = name.Substring(0, name.IndexOf('<'));
address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
}
else
{
displayName = string.Empty;
address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');
}
// mail.To.Add(new MailAddress(address, displayName));
mail.CC.Add(new MailAddress(address, displayName)); //收件人地址的集合
}

}

mail.Body = txtBody.Text; //设置邮件的内容
mail.BodyEncoding = System.Text.Encoding.UTF8; //设置邮件的格式
mail.IsBodyHtml = true; //设置正文是否为HTML格式
mail.Priority = MailPriority.Normal; //设置邮件的发送级别
if (txtMailTo.Text != "")
{
string fileName = txtUpFile.Text.Trim(); //设置邮件的附件
fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1); //取文件名
mail.Attachments.Add(new Attachment(fileName)); //添加附件到邮件当中
}
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
SmtpClient client = new SmtpClient();
client.Host = "smtp.163.com"; //设置SMTP的地址,注意:是什么邮箱就应该用相对应的地址
client.Port = 25; //设置用于 SMTP 事务的端口,默认的是 25
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("*****", "*****");//我的邮箱的登录名和密码。就是发送方的用户名和密码,要对应上面的Host地址
client.DeliveryMethod = SmtpDeliveryMethod.Network;

client.Send(mail); //邮件的正式发送
MessageBox.Show("发送成功");
}
wuyq11 2010-09-23
  • 打赏
  • 举报
回复
public void MailSend(string MailFrom,string MailTo,string MailPwd,string Mailtitle,string MailCon)
{
MailMessage MyMail = new MailMessage();
MyMail.From = new MailAddress("", "");
MyMail.To.Add(new MailAddress(""));
MyMail.Subject = Mailtitle;
MyMail.Body = MailCon;
MyMail.IsBodyHtml = false;
SmtpClient smtpclient = new SmtpClient();
smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpclient.Host = "";
smtpclient.Credentials = new System.Net.NetworkCredential(MailFrom, MailPwd);
smtpclient.Send(MyMail);
}
Thread thread = new Thread(new ParameterizedThreadStart(SomeMethod));
BackgroundWorker worker = new BackgroundWorker();
xulisha123 2010-09-23
  • 打赏
  • 举报
回复
帮顶。 关注

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧