[英]I want to send multiple email request at a time using smtp in console application .how I can send bulk email request at a time with using threading
for (int i = 0; i < 50; i++)
{
Thread T1 = new Thread(delegate ()
{
Console.WriteLine("email sent..");
smtp.Send(msg);
});
T1.Start();
}
我正在嘗試使用 smtp.Send(msg) 通過多線程發送批量請求。
我已經嘗試了上面的代碼,但出現了這個錯誤
異步調用已在進行中。 必須先完成或取消才能調用此方法
我該如何解決這個問題。
如果您使用以下客戶端。 我建議您重構您的代碼,如下所示:
var tasks = new List<Task>()
for (int i = 0; i < 50; i++)
{
task.Add(smtp.SendAsync(msg));
}
await Task.WhenAll(tasks)
有什么不同?
使用任務將在后台使用線程,但會負責所有線程調度和清理。 c# TPL是通往 go 的途徑,如果你想為你的應用程序添加並行性和並發性(我從上面的鏈接中偷走了那一行)
考慮到@phuzi 對您的問題的評論,您可能需要在 for 循環中實例化一個客戶端。
請記住,這將使用等待,因為您必須將異步添加到您的 function 簽名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.