以下のC#コードでSendEmail()メソッドを呼び出すと、SendEmail()メソッドがブロックされたり、時間がかかったり失敗したりする必要があります。プログラムがブロックされないようにする呼び出し方法
ここに私のC#のコードです:してください、次の私が使用して同じことを達成することができます
private void MyMethod()
{
DoSomething();
SendEmail();
}
を(私は純4.5を使用しています)やその他のより良い方法がある非同期/待つより良いアプローチを使用しているが?これを達成するために?
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