Почему может SmtpClient. SendAsync только быть названным однажды?

Невозможно на данный момент времени. Возможно, вы захотите использовать «маршруты предложений» на некоторых из приведенных ниже ссылок.

Обратная связь для разработчиков Главная - https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer

Обратная связь для разработчиков Twitter - https://www.twitter.com/msedgedev

Предложения по функциям - https: // windowsphone .uservoice.com / forums / 101801-feature-ideas / category / 18985-web-просмотр

Healy in Tampa

22
задан Daniel 23 December 2008 в 18:38
поделиться

6 ответов

Согласно документация :

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

Так для отправки нескольких писем одновременно Вам нужны несколько экземпляров SmtpClient.

35
ответ дан Darin Dimitrov 29 November 2019 в 04:04
поделиться

Очевидно, это не попытка остановить массовые почтовые программы.

причина состоит в том, что класс SmtpClient не ориентирован на многопотоковое исполнение. Если Вы хотите послать несколько электронных писем одновременно, необходимо породить несколько рабочих потоков (существует несколько способов сделать это в Платформе.NET), и создайте отдельные экземпляры SmtpClient в каждом из них.

4
ответ дан Tamas Czinege 29 November 2019 в 04:04
поделиться

Я думаю, что Вы неправильно понимаете XXXAsync класс методов. Цель этих асинхронных вызовов состоит в том, чтобы позволить программе продолжать работать без потребности метода закончить обработать и возвращаться сначала. Можно тогда возобновить результат позже, подписываются на что-то как XXXReceived событие объекта.

Для отправки больше чем одной почты одновременно можно рассмотреть использование больше Thread с.

4
ответ дан Gant 29 November 2019 в 04:04
поделиться

Можно только отправить по одному на клиент SMTP. Если Вы хотите заставить больше чем один отправить вызов, создайте больше чем один клиент SMTP.

HTH,

Colby Africa

2
ответ дан Colby Africa 29 November 2019 в 04:04
поделиться

Как замечено всеми остальными здесь, можно только послать одно электронное письмо за один раз, но способ отправить другого однажды первое был отправлен, должен обработать.SendCompleted событие класса SmtpClient, и затем идти дальше на следующий адрес электронной почты и отправить это.

, Если Вы хотите послать много электронных писем одновременно, затем как другие сказали, используйте несколько объектов SmtpClient.

2
ответ дан angry person 29 November 2019 в 04:04
поделиться

Возможно, вы сможете использовать следующее:

ThreadPool.QueueUserWorkItem(state => client.Send(msg));

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

6
ответ дан 29 November 2019 в 04:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: