您可以使用任務從工作線程產生處理電子郵件。
如果這是錘擊CPU太多,你可以創建一個新的調度程序,減少了併發性:http://msdn.microsoft.com/en-us/library/ee789351.aspx
static void StartMailTasks(string[] addresses)
{
List<Task> tasks = new List<Task>();
foreach (var address in addresses)
{
tasks.Add(Task.Factory.StartNew(Email, address));
}
Task.Factory.ContinueWhenAll(tasks.ToArray(), AllDone, TaskContinuationOptions.OnlyOnRanToCompletion);
Task.Factory.ContinueWhenAny(tasks.ToArray(), ReportError, TaskContinuationOptions.OnlyOnFaulted);
}
static void AllDone(Task[] tasks)
{
// All is well
}
static void ReportError(Task errorTask)
{
// Log or report the error
}
static void Email(object state)
{
// send the e-mail
// Can throw error, if needed
}
我已經走了類似的東西,但使用Windows任務計劃程序和連接到我的數據庫的控制檯應用程序。你的答案是最接近的,所以我會接受你的答案。 – Marko 2010-11-14 20:51:35