2013-12-23 5 views
6

Я довольно новичок в C#, но я многому научился из VB.Net о программировании в .NET для Windows.Ускорить отправку нескольких писем через smtp-сервер с помощью System.Net.Mail

Я только что сделал простой SMTP-клиент, который отправляет письма из программы. Это консольное приложение и может отправлять только одно электронное сообщение через сервер за раз. Это очень медленно, и мне нужно отправить несколько писем через моего клиента на одновременно.

Возможно ли это на C#?

+0

использовать асинхронный механизм .. –

+0

Возможно, вы не читали, но я сказал им довольно nooby в C#, поэтому я понятия не имею, как это сделать ... но thx anyway – rodit

+0

Я бы посоветовал вам прочитать [Multithreading] (http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx). – Sam

ответ

7

Просто используйте несколько потоков (несколько процессов).

В C# вы можете сделать это с помощью Задачи.

new Task(delegate { 
    smtpClient.send(myMessage); 
}).Start(); 

Просто обернуть команду send в этом объекте, и он будет посылать асинхронно.

Будьте осторожны, если это завернуто в цикл, он начнет новый процесс для каждой почты.

Если вам нужно отправить большое количество писем одновременно, я предлагаю вам использовать ThreadPool. Он позволяет вам контролировать количество совпадающих потоков, которые вы хотели бы иметь одновременно.

Смежные вопросы