【发布时间】:2012-10-25 23:51:00
【问题描述】:
我有一个 ASP.NET 页面,它向用户列表发送电子邮件 - 这个列表可能相当大,我们发现 ASP.NET 页面经常会超时。
我们想要做的是在一个新线程中发送这些电子邮件,这样当电子邮件进程在后台运行时,ASP.NET 页面会刷新给用户。
不过,我有点难以理解我需要做的事情。这是当前我的 ASP.NET 页面上的按钮单击事件:
protected void btnSend_Click(object sender, EventArgs e)
{
//Populate form data session
_FormInfo = new Dictionary<string, string>();
_FormInfo.Add("Name", txtName.Text);
_FormInfo.Add("Postcode", txtPostcodeDone.Text);
PostcodeSearcher.PostcodeEmailer(_Companies, _FormInfo);
mv.ActiveViewIndex = 3;
}
这是我要调用的方法(在 PostcodeSearcher 类中)
public static void PostcodeEmailer(List<Company> companies, Dictionary<string, string> quote)
{
...
}
正如您所见,我需要在新线程中调用的方法需要接受参数——我在网上能找到的只是调用不带参数的新线程。有什么想法吗?
【问题讨论】:
-
C#5 的 Asnyc 怎么样? msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx
标签: c# asp.net multithreading