Ich muss SendEmail() in meinem C# -Code unten aufrufen, damit mein Programm wegen der Methode SendEmail() nicht blockiert wird, die viel Zeit in Anspruch nimmt oder fehlschlägt.Aufruf der Methode, damit das Programm nicht blockiert wird
Hier ist mein C# -Code:? (Ich verwende .Net 4,5)
private void MyMethod()
{
DoSomething();
SendEmail();
}
Kann ich das gleiche erreichen mit folgenden bitte Oder gibt es einen anderen besseren Ansatz ist mit Asynchron/await einem besseren Ansatz um das zu erreichen?
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]);
}
Und falls ich brauche SendEmailAlert() -Methode wie Feuer zu machen und vergessen, kann ich Code verwendet das richtig sein? ---->
Task.Run(()=> SendEmailAlert(arrEmailInfo));
Danke.
Blick in async/erwarten –
Sie Threading verwenden können, aber es ist wahrscheinlich besser zu nutzen async/erwarten für diese. – ChrisF