我需要在我的C#代碼中調用SendEmail()以便我的程序不會因爲SendEmail()方法花費很多時間和/或失敗而被阻止。調用方法,以便程序不會被阻止
這裏是我的C#代碼:?(我使用.NET 4.5)
private void MyMethod()
{
DoSomething();
SendEmail();
}
我也能達到同樣使用下面請或有任何其他更好的辦法是使用異步/等待下一個更好的方法爲了實現這個?
public void MyMethod()
{
DoSomething();
try
{
string emailBody = "TestBody";
string emailSubject = "TestSubject";
System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(SendEmailAlert), arrEmailInfo);
}
catch (Exception ex)
{
//Log error message
}
}
private void SendEmailAlert(object state)
{
string[] arrEmailnfo = state as string[];
MyClassX.SendAlert(arrEmailnfo[0], arrEmailnfo[1]);
}
而且萬一我需要做SendEmailAlert()方法,發射後不管,我可以用這樣的代碼這是正確? ---->
Task.Run(()=> SendEmailAlert(arrEmailInfo));
謝謝。
查找到異步/等待 –
您可以使用線程,但它可能是最好使用異步爲此/等待。 – ChrisF