public static void SendEmails() { var myLock = new object(); lock (myLock) { try { using (var repository = new TradelrRepository()) { bool haveChanges = false; var mails = repository.GetMails(); foreach (var mail in mails.ToList()) { Email.Email.SendMail(mail, true, false); repository.DeleteMail(mail); haveChanges = true; } if (haveChanges) { repository.Save("SendEmails"); } } } catch (Exception ex) { Syslog.Write(ex); } } }