Как вызвать метод асинхронно
Я пытался перейти по этой ссылкеАсинхронный вызов но некоторые классы устарели.
Поэтому я хочу точный ответ для моего проекта.
<code>public class RegisterInfo { public bool Register(UserInfo info) { try { using (mydatabase db = new mydatabase()) { userinfotable uinfo = new userinfotable(); uinfo.Name = info.Name; uinfo.Age = info.Age; uinfo.Address = info.Address; db.userinfotables.AddObject(uinfo); db.SaveChanges(); // Should be called asynchronously Utility.SendEmail(info); // this tooks 5 to 10 seconds or more. return true; } } catch { return false; } } } public class UserInfo { public UserInfo() { } public string Name { get; set; } public int Age { get; set; } public string Address { get; set; } } public class Utility { public static bool SendEmail(UserInfo info) { MailMessage compose = SomeClassThatComposeMessage(info); return SendEmail(compose); } private static bool SendEmail(MailMessage mail) { try { SmtpClient client = new SmtpClient(); client.Host = "smtp.something.com"; client.Port = 123; client.Credentials = new System.Net.NetworkCredential("[email protected]", "password"); client.EnableSsl = true; ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate); client.Send(mail); return true; } catch { return false; } } } </code>
Пожалуйста, посмотрите наRegister
метод.
После сохранения данных я не хочу ждать отправки почты. Если возможно, я хочу обработать отправку почты в другом потоке, чтобы пользователь не стал дольше ждать.
Мне не нужно знать, была ли почта успешно отправлена.
Надеюсь, вы поняли, о чем я. Извините за мой плохой английский.