c# 定时器+多线程邮件发送~~高手进

酷儿 2011-11-15 11:27:46
我建了一个exe扫描程序 用于邮件群发 有邮件服务器的白名单
窗体上有一个button和一个timer
我点击button的时候
button1.Enabled = false;
timer1.Interval = 1000; //1秒执行一次
timer1.Start();
在 private void timer1_Tick(object sender, System.EventArgs e)
{
//在这里使用多线程
threads = new Thread[9];
for (int i = 0; i < 9; i++)
{
//将每一个线程都指向printer的PrintNumbers()方法
threads[i] = new Thread(new ThreadStart(MailSend));
//给每一个线程编号
threads[i].Name = i.ToString() + "号线程";
}
foreach (Thread t in threads)
{
t.Start();
System.Threading.Thread.Sleep(50);
}}
[MethodImpl(MethodImplOptions.Synchronized)]
private static void MailSend()
{
//执行发送代码块
}

现在的问题是:每执行一次就会新增加10个线程 这样时间长了服务器会吃不消 而且进程会挂掉。请问各位大位有做过类似的吗?我现在的要求是每秒发送10条邮件。怎么样在定时器启动的时候而不去增加线程呢?或者线程执行完释放掉
...全文
298 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
铜臂阿铁木 2011-11-15
  • 打赏
  • 举报
回复
先实例化线程,循环里去操作线程。而不是“循环里包括了实例化线程与操作线程”
酷儿 2011-11-15
  • 打赏
  • 举报
回复
主要是发送时间有个限定 早上9点到12点 下午2点到6点 不然会引起用户投诉 不然的话就不需要timer定时器 这样的话就不用那么麻烦了 呵呵
酷儿 2011-11-15
  • 打赏
  • 举报
回复
是的 所以就想解决这个问题 因为线程排队发送的时候也有个优先级 谁先抢到资源是谁的 只是不知道该 怎么解决
  • 打赏
  • 举报
回复
用线程池管理呢?

你现在是每秒开10个线程,但实际上发送邮件过程并不一定在一秒内能完成
这样线程堆积越来越多
酷儿 2011-11-15
  • 打赏
  • 举报
回复
能说的再明白点吗?
内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题展与论文撰写; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐学习,重点理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。

62,272

社区成员

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

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

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

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