- 浏览: 715471 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
liuweihug:
.net的请参考:Jquery+asp.net 后台数据传到前 ...
jquery ajax POST 例子详解 -
topbox163:
LZ,有LINUX 64位的WEBLOGIC没?
WebLogic11g|Oracle WebLogic Server 11gR1|下载
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Web.Mail;
namespace ConsoleApplication1
{
public delegate void CallBack(bool state, int count);
public class Program
{
public void Show(bool state,int count)
{
Console.WriteLine("{0}-{1}",state,count);
}
static void Main(string[] args)
{
int tempCount = 120;
int tempWhileCount = (tempCount / 100) * 100;
int tempOtherCount = tempCount - tempWhileCount;
Console.WriteLine(tempWhileCount);
Console.WriteLine(tempOtherCount);
//指定线程数
int size = 10;
size = tempWhileCount==0?(0):(tempWhileCount <= 100 ? (10) : (tempWhileCount <= 1000 ? (20) : (25)));
List<MailInfo> lall = new List<MailInfo>();
//添加邮件信息
for (int i = 0; i <tempCount; i++)
{
lall.Add(new MailInfo("三毛"+ i.ToString(),"wangdetian16" + i.ToString() + "@qq.com"));
}
//创建多线程
for (int i = 0; i < size; i++)
{
ThreadData temptd = new ThreadData(new CallBack(new Program().Show));
List<MailInfo> tempLi = new List<MailInfo>();
for (int j = i * (tempWhileCount / size); j < (i * (tempWhileCount / size) + tempWhileCount / size); j++)
{
tempLi.Add(lall[j]);
}
temptd.LisMails = tempLi;
Thread tempThread = new Thread(new ThreadStart(temptd.Run));
tempThread.Start();
}
ThreadData temptdOther = new ThreadData(new CallBack(new Program().Show));
List<MailInfo> tempLiOther = new List<MailInfo>();
for (int j = tempWhileCount; j < tempCount; j++)
{
tempLiOther.Add(lall[j]);
}
temptdOther.LisMails = tempLiOther;
Thread tempThreadOther = new Thread(new ThreadStart(temptdOther.Run));
tempThreadOther.Start();
//ThreadData thdata1 = new ThreadData();
//List<string> l1 = new List<string>();
//for (int i = 0; i < 1000; i++)
//{
// l1.Add("wangdetian16"+i.ToString()+"@163.com");
//}
//thdata1.LisMails = l1;
//Thread thread = new Thread(new ThreadStart(thdata1.Run));
//thread.Start();
//ThreadData thdata2 = new ThreadData();
//List<string> l2 = new List<string>();
//for (int i = 0; i < 10; i++)
//{
// l2.Add("wangdetian18" + i.ToString() + "@163.com");
//}
//thdata2.LisMails = l2;
//Thread thread1 = new Thread(new ThreadStart(thdata2.Run));
//thread1.Start();
}
}
public class ThreadData
{
public static string MailMessage = "{0}你好你人物要做近三分萨拉夫接撒立法精神多了几分当上了副驾驶的发生大风蓝色队服那里公司发展规划的";
private List<MailInfo> _LisMails;
public static string frommail = "wangdetian116688@163.com";//System.Configuration.ConfigurationManager.AppSettings["frommail"];
public static string username = "wangdetian116688";//System.Configuration.ConfigurationManager.AppSettings["username"];
public static string password = "987654321";//System.Configuration.ConfigurationManager.AppSettings["password"];
public List<MailInfo> LisMails
{
set { this._LisMails = value; }
get { return this._LisMails; }
}
public CallBack CB;
public ThreadData(CallBack cb)
{
this.CB = cb;
}
public void Run()
{
int i = 0;
foreach (MailInfo s in LisMails)
{
System.Threading.Thread.Sleep(1000);
Console.WriteLine(string.Format(MailMessage,s.MailName+s.MailAddress));
CB(false,++i);
// SendMail20(s.MailAddress, s.MailName, string.Format(MailMessage, s.MailName));
}
CB(true, i);
}
private bool SendMail(string toMail, string subject, string body)
{
try
{
string fromMail = ThreadData.frommail;
MailMessage myMail = new MailMessage();
myMail.From = fromMail;
myMail.To = toMail;
//myMail.Cc = ccMail;
//myMail.Bcc = bccMail;
myMail.Subject = subject;
myMail.Body = body;
myMail.BodyFormat = MailFormat.Html;
//附件
string ServerFileName = "";
//if (this.upfile.PostedFile.ContentLength != 0)
//{
// string upFileName = this.upfile.PostedFile.FileName;
// string[] strTemp = upFileName.Split('.');
// string upFileExp = strTemp[strTemp.Length - 1].ToString();
// ServerFileName = Server.MapPath(DateTime.Now.ToString("yyyyMMddhhmmss") + "." + upFileExp);
// this.upfile.PostedFile.SaveAs(ServerFileName);
// myMail.Attachments.Add(new MailAttachment(ServerFileName));
//}
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", ThreadData.username); //发送方邮件帐户
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", ThreadData.password); //发送方邮件密码
SmtpMail.SmtpServer = "smtp." + fromMail.Substring(fromMail.IndexOf("@") + 1);
SmtpMail.Send(myMail);
return true;
}
catch
{
return false;
}
}
private bool SendMail20(string toMail, string subject, string body)
{
try
{
System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(ThreadData.frommail); //邮件的发件人
//string fromMail = ThreadData.frommail;
System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage();
//设置邮件的标题
myMail.Subject = subject;
//设置邮件的发件人
//Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用
myMail.From = from;
//MailAddress(address, displayName)
myMail.To.Add(new System.Net.Mail.MailAddress(toMail));
////设置邮件的抄送收件人
////这个就简单多了,如果不想快点下岗重要文件还是CC一份给领导比较好
//mail.CC.Add(new MailAddress("Manage@hotmail.com", "尊敬的领导");
//设置邮件的内容
myMail.Body = body;
//设置邮件的格式
myMail.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
myMail.IsBodyHtml = true;
//设置邮件的发送级别
myMail.Priority = System.Net.Mail.MailPriority.Normal;
//设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中
//string fileName = txtUpFile.PostedFile.FileName.Trim();
//fileName = "D:\UpFile\" + fileName.Substring(fileName.LastIndexOf("\") + 1);
//txtUpFile.PostedFile.SaveAs(fileName); // 将文件保存至服务器
//mail.Attachments.Add(new Attachment(fileName));
myMail.DeliveryNotificationOptions = System.Net.Mail.DeliveryNotificationOptions.OnSuccess;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
//设置用于 SMTP 事务的主机的名称,填IP地址也可以了
client.Host = "smtp." + ThreadData.frommail.Substring(ThreadData.frommail.IndexOf("@") + 1);
//"smtp.hotmail.com";// "smtp." + fromMail.Substring(fromMail.IndexOf("@") + 1);
//设置用于 SMTP 事务的端口,默认的是 25
//client.Port = 25;
client.UseDefaultCredentials = false;
//这里才是真正的邮箱登陆名和密码,比如我的邮箱地址是 wangdetian@126.com, 我的用户名为 hbgx ,我的密码是 xgbh
client.Credentials = new System.Net.NetworkCredential(ThreadData.username, ThreadData.password);
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//都定义完了,正式发送了,很是简单吧!
client.Send(myMail);
return true;
}
catch
{
return false;
}
}
}
public class MailInfo
{
public string MailName;
public string MailAddress;
public string MailMessage;
public MailInfo(string mailName, string mailAddress)
{
this.MailName = mailName;
this.MailAddress = mailAddress;
}
public MailInfo(string mailName, string mailAddress, string mailMessage)
{
this.MailName = mailName;
this.MailAddress = mailAddress;
this.MailMessage = mailMessage;
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Web.Mail;
namespace ConsoleApplication1
{
public delegate void CallBack(bool state, int count);
public class Program
{
public void Show(bool state,int count)
{
Console.WriteLine("{0}-{1}",state,count);
}
static void Main(string[] args)
{
int tempCount = 120;
int tempWhileCount = (tempCount / 100) * 100;
int tempOtherCount = tempCount - tempWhileCount;
Console.WriteLine(tempWhileCount);
Console.WriteLine(tempOtherCount);
//指定线程数
int size = 10;
size = tempWhileCount==0?(0):(tempWhileCount <= 100 ? (10) : (tempWhileCount <= 1000 ? (20) : (25)));
List<MailInfo> lall = new List<MailInfo>();
//添加邮件信息
for (int i = 0; i <tempCount; i++)
{
lall.Add(new MailInfo("三毛"+ i.ToString(),"wangdetian16" + i.ToString() + "@qq.com"));
}
//创建多线程
for (int i = 0; i < size; i++)
{
ThreadData temptd = new ThreadData(new CallBack(new Program().Show));
List<MailInfo> tempLi = new List<MailInfo>();
for (int j = i * (tempWhileCount / size); j < (i * (tempWhileCount / size) + tempWhileCount / size); j++)
{
tempLi.Add(lall[j]);
}
temptd.LisMails = tempLi;
Thread tempThread = new Thread(new ThreadStart(temptd.Run));
tempThread.Start();
}
ThreadData temptdOther = new ThreadData(new CallBack(new Program().Show));
List<MailInfo> tempLiOther = new List<MailInfo>();
for (int j = tempWhileCount; j < tempCount; j++)
{
tempLiOther.Add(lall[j]);
}
temptdOther.LisMails = tempLiOther;
Thread tempThreadOther = new Thread(new ThreadStart(temptdOther.Run));
tempThreadOther.Start();
//ThreadData thdata1 = new ThreadData();
//List<string> l1 = new List<string>();
//for (int i = 0; i < 1000; i++)
//{
// l1.Add("wangdetian16"+i.ToString()+"@163.com");
//}
//thdata1.LisMails = l1;
//Thread thread = new Thread(new ThreadStart(thdata1.Run));
//thread.Start();
//ThreadData thdata2 = new ThreadData();
//List<string> l2 = new List<string>();
//for (int i = 0; i < 10; i++)
//{
// l2.Add("wangdetian18" + i.ToString() + "@163.com");
//}
//thdata2.LisMails = l2;
//Thread thread1 = new Thread(new ThreadStart(thdata2.Run));
//thread1.Start();
}
}
public class ThreadData
{
public static string MailMessage = "{0}你好你人物要做近三分萨拉夫接撒立法精神多了几分当上了副驾驶的发生大风蓝色队服那里公司发展规划的";
private List<MailInfo> _LisMails;
public static string frommail = "wangdetian116688@163.com";//System.Configuration.ConfigurationManager.AppSettings["frommail"];
public static string username = "wangdetian116688";//System.Configuration.ConfigurationManager.AppSettings["username"];
public static string password = "987654321";//System.Configuration.ConfigurationManager.AppSettings["password"];
public List<MailInfo> LisMails
{
set { this._LisMails = value; }
get { return this._LisMails; }
}
public CallBack CB;
public ThreadData(CallBack cb)
{
this.CB = cb;
}
public void Run()
{
int i = 0;
foreach (MailInfo s in LisMails)
{
System.Threading.Thread.Sleep(1000);
Console.WriteLine(string.Format(MailMessage,s.MailName+s.MailAddress));
CB(false,++i);
// SendMail20(s.MailAddress, s.MailName, string.Format(MailMessage, s.MailName));
}
CB(true, i);
}
private bool SendMail(string toMail, string subject, string body)
{
try
{
string fromMail = ThreadData.frommail;
MailMessage myMail = new MailMessage();
myMail.From = fromMail;
myMail.To = toMail;
//myMail.Cc = ccMail;
//myMail.Bcc = bccMail;
myMail.Subject = subject;
myMail.Body = body;
myMail.BodyFormat = MailFormat.Html;
//附件
string ServerFileName = "";
//if (this.upfile.PostedFile.ContentLength != 0)
//{
// string upFileName = this.upfile.PostedFile.FileName;
// string[] strTemp = upFileName.Split('.');
// string upFileExp = strTemp[strTemp.Length - 1].ToString();
// ServerFileName = Server.MapPath(DateTime.Now.ToString("yyyyMMddhhmmss") + "." + upFileExp);
// this.upfile.PostedFile.SaveAs(ServerFileName);
// myMail.Attachments.Add(new MailAttachment(ServerFileName));
//}
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", ThreadData.username); //发送方邮件帐户
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", ThreadData.password); //发送方邮件密码
SmtpMail.SmtpServer = "smtp." + fromMail.Substring(fromMail.IndexOf("@") + 1);
SmtpMail.Send(myMail);
return true;
}
catch
{
return false;
}
}
private bool SendMail20(string toMail, string subject, string body)
{
try
{
System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(ThreadData.frommail); //邮件的发件人
//string fromMail = ThreadData.frommail;
System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage();
//设置邮件的标题
myMail.Subject = subject;
//设置邮件的发件人
//Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用
myMail.From = from;
//MailAddress(address, displayName)
myMail.To.Add(new System.Net.Mail.MailAddress(toMail));
////设置邮件的抄送收件人
////这个就简单多了,如果不想快点下岗重要文件还是CC一份给领导比较好
//mail.CC.Add(new MailAddress("Manage@hotmail.com", "尊敬的领导");
//设置邮件的内容
myMail.Body = body;
//设置邮件的格式
myMail.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
myMail.IsBodyHtml = true;
//设置邮件的发送级别
myMail.Priority = System.Net.Mail.MailPriority.Normal;
//设置邮件的附件,将在客户端选择的附件先上传到服务器保存一个,然后加入到mail中
//string fileName = txtUpFile.PostedFile.FileName.Trim();
//fileName = "D:\UpFile\" + fileName.Substring(fileName.LastIndexOf("\") + 1);
//txtUpFile.PostedFile.SaveAs(fileName); // 将文件保存至服务器
//mail.Attachments.Add(new Attachment(fileName));
myMail.DeliveryNotificationOptions = System.Net.Mail.DeliveryNotificationOptions.OnSuccess;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
//设置用于 SMTP 事务的主机的名称,填IP地址也可以了
client.Host = "smtp." + ThreadData.frommail.Substring(ThreadData.frommail.IndexOf("@") + 1);
//"smtp.hotmail.com";// "smtp." + fromMail.Substring(fromMail.IndexOf("@") + 1);
//设置用于 SMTP 事务的端口,默认的是 25
//client.Port = 25;
client.UseDefaultCredentials = false;
//这里才是真正的邮箱登陆名和密码,比如我的邮箱地址是 wangdetian@126.com, 我的用户名为 hbgx ,我的密码是 xgbh
client.Credentials = new System.Net.NetworkCredential(ThreadData.username, ThreadData.password);
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//都定义完了,正式发送了,很是简单吧!
client.Send(myMail);
return true;
}
catch
{
return false;
}
}
}
public class MailInfo
{
public string MailName;
public string MailAddress;
public string MailMessage;
public MailInfo(string mailName, string mailAddress)
{
this.MailName = mailName;
this.MailAddress = mailAddress;
}
public MailInfo(string mailName, string mailAddress, string mailMessage)
{
this.MailName = mailName;
this.MailAddress = mailAddress;
this.MailMessage = mailMessage;
}
}
}
发表评论
-
vs2010破解|vs2010破解方法|vs2010破解序列号
2010-08-27 13:29 971步骤1.下载VS2010 正式 ... -
vs2008下载|vs2008中文版下载
2010-08-20 17:56 1155vs2008下载 中文版下载 官方下载地址 vs2008中文版 ... -
vs2005下载|中文版|官方
2010-08-20 18:20 1202vs2005下载,中文版,官方 为了招徕更多的拥戴者,微软把V ... -
C# 去所有 html标签的代码|去除html标签代码
2010-07-23 15:12 1586C# 去所有 html标签的代 ... -
asp.net md5的加密方法|md5加密方法asp.net
2010-07-06 22:16 810asp.net md5的加密方法|md5加密方法asp.net ... -
C# 上传生成新图片代码|C#生成图片代码
2010-07-07 15:01 943public void MakeSmallPic ... -
给xml|web.config 增加节点和属性值
2010-03-28 16:50 892给xml|web.config 增加节点和属性值 str ... -
C# 手动读写app config 的源码
2010-04-26 15:36 993public class ConfigOperator { ... -
查询其实也是个循环,简单的例子介绍
2009-06-06 10:24 662查询其实也是个循环,简单的例子介绍 declare @Name ... -
删除附属于该类和子类的分类信息
2009-06-06 15:28 520delete from Sort where Column_I ... -
页码控件源码|分页页码控件源码
2009-06-08 17:26 639页码控件源码|分页页码 ... -
Ajax处理函数模板
2009-06-09 14:33 942Ajax处理函数模板 public void IsAjaxF ... -
新闻添加cs页面
2009-06-10 18:15 616新闻添加cs页面 using System;using Sys ... -
新闻添加html页面
2009-06-10 18:17 770新闻添加html页面 <%@ Page Language ... -
新闻列表管理页面
2009-06-10 18:18 762新闻列表管理页面 <%@ Page Language=& ... -
新闻管理cs页面
2009-06-10 18:18 740using System;using System.Data; ... -
新闻管理数据模板
2009-06-10 18:20 582using System;using System.Colle ... -
数据库连接类
2009-06-10 18:21 570using System;using System.Data; ... -
页码源码
2009-06-11 14:27 679页码源码 using System;using ... -
简单的数组排序
2009-06-15 18:23 510int[] a = new int[] { 2, 1 ...
相关推荐
这里面有几个非常好的例子哦,和大家共享下。反正回复了就可以拿回积分,哈哈
C#窗体间传值代码,几种简单的传值方法。
C# Winform 窗体传值及接收返回值 通过构造传值 通过属性传值
本书是一本通俗易懂的C#多线程编程指南,通过70多个容易理解的示例,循序渐进地讲解C#5.0中的异步及并发编程,引导读者了解Windows下C#多线程编程的多样性。 通过阅读本书,你将学到: 使用原始线程、异步线程,...
串口通信的实现,编程环境为C#,实现技术采用了多线程方式
C#多线程实时显示系统时间C#多线程实时显示系统时间C#多线程实时显示系统时间C#多线程实时显示系统时间C#多线程实时显示系统时间
C# 跨页 传值 利用Javasprite
该范例使用委托的方式在各个窗口间传值 线程中传值也可以用同样的方法。非常简单猛料。希望大家自行下载学习
C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 C# 多线程界面假死解决,正确使用多线程 没分的朋友...
C#多线程互斥实例 多线程获取同一变量(不重复)。是一个很好的学习例子
c# 实现多线程的操作,轮询等待回调等异步操作,适合初学者的源码
c#中不同窗体之间传值的经典方法 c#中不同窗体之间传值的经典方法
c#线程结束后,实现的委托回调函数源码 线程结束,通知主线程,并且可以实现对主线程控件的安全访问
C#多线程实现定时器
C#多线程刷新界面
多线程读写sqlite数据库,同步锁,计时测试读写性能,
C#中的多线程C#中的多线程C#中的多线程C#中的多线程C#中的多线程
C#窗体之间传值方法大全,适合学习之用。
C#多线程之如何弹出一个模式窗口来显示进度条 学习版
C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例C# 多线程实例