private void TimerElapsed(object sender, ElapsedEventArgs e) { lock (sendingMessages) { int count = _messages.Count; if (count > 0) { _mailSender.Connect(); var list = new List <Message>(); for (int i = 0; i < count; i++) { list.Add(_messages.Dequeue()); } foreach (var m in list) { _mailSender.SendMail(m.Title, m.Body, m.Receiver); } _mailSender.Disconnect(); } } }