Есть несколько вещей, которые ограничат производительность этого процесса вне любого написанного вами кода.
- Пропускная способность Интернета на сервере, на котором отправляются электронные письма.
- Куда отправляются эти письма. То есть ваш SMTP-сервер в конечном итоге должен соединиться и связаться с сервером провайдера электронной почты получателя электронной почты для отправки электронной почты. Некоторые серверы работают медленно, некоторые заняты, и для их подключения требуется много времени.
Что касается использования нескольких потоков для ускорения, ну где же замедление?
Отправка (и получение) электронной почты, в основном, связана с операциями ввода-вывода. перебрасывание потоков при этой проблеме может или не может улучшить производительность. Все зависит от того, есть ли где-то узкое место (в коде), если вы просто ограничены вычислительной мощностью или пропускной способностью сервера.
Ознакомьтесь с этой статьей SO Я ответил, где предоставил многопоточное решение, которое может помочь. По сути, он использует технику параллельного программирования, называемую « Data Parallel », где рабочая нагрузка по существу разбивается на несколько кусков, а затем каждый блок обрабатывается потоком, сохраняя количество блоков равным (или близким к) количество ядер на машине.