c# - c#中foreach循环内的线程

标签 c# asp.net multithreading

大家好,

在我的 asp.net web 应用程序中,我有以下代码可以向不同的用户发送不同的邮件

foreach (DataRow dataRow in dataTable.Rows) 
{
   sendMails();
}
public void sendMails()
{
 //mail code
}

现在我想在 foreach 循环中使用线程,但我不知道结果会是什么,因为如果我启动“n”个线程,线程池会发生什么。考虑我的数据表包含 1000 行,

是否可以同时运行 1000 个线程?

foreach (DataRow dataRow in dataTable.Rows) 
{
    ThreadStart ts1 = new ThreadStart(sendMails);
    Thread thread1 = new Thread(ts1);
    thread1.Start();
}

public void sendMails()
{
   //mail code
}

最佳答案

启动一个线程来完成发送所有邮件的工作:

new Thread(() => {
    foreach (DataRow dataRow in dataTable.Rows) 
    {
        sendMails();
    }
}).Start();

关于c# - c#中foreach循环内的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2005649/

相关文章:

c# - 引用组合框中的值时 LINQ 查询出错

c# - 在 ASP.NET Web Config 中加密连接字符串

c# - 如何使用每个类层次结构策略在 nhibernate 中管理多级类层次结构?

c# - 使用进程 c# 进行错误处理

asp.net - Restful MVC Web Api 继承

java - 从 Thread-Object 访问 MainActivity 中的方法

java - 哪种是杀死线程的最简洁和/或最有效的方法

c# - ASP.NET 图表无法在服务器上运行

ASP.NET Web API 2 - 用户注册电子邮件确认失败

java - 使用 java 调用 Web 服务 URL