сообщение через SmtpClient, регистрируется как singleton , в сервисе есть метод асинхронный который создает новый SmtpClient и отправляет сообщение. Проблема в том, что сервис передается в несколько обработчиков событий, могу прийти два события одновременно и SmtpServer не может обработать сразу два отправленых сообщения. Есть вариант залочить через lock(object) часть кода где происходит отправка сообщения?
нинада такое лочить! ) ваш синглетон должен уметь копить очередь. пропихивайте в очередь новые сообщения и постепенно отправляйте сообщения. локать ну такое. или jobом обрабатывайте отправки.
Обсуждают сегодня