C# ASP.NET 3.5
非同期または一方向ではない Web サービスのメソッドを「起動して忘れる」ことは可能ですか?
私が必要としない値を返すメソッドがあります (いくつかの処理の後)。これは別のグループ (サービスを書いた人) によって使用されます。基本的に、ユーザー x がアクション y を行ったことを通知するだけです。メソッドを呼び出して、結果を待たずに先に進むだけです。
RunWorkerAsync で BackgroundWorker() を使用しようとしましたが、何らかの理由でメソッドが起動しません。コードにアクセスできないため、Web サービス メソッドを変更できません。BackgroundWorker、Invoke、ThreadPool などを使用する必要がありますか? 結果が返される必要はなく、失敗したかどうかを知る必要もありません。基本的に、メソッドを呼び出し、それが機能する場合は素晴らしいです。そうでない場合は、処理を停止したり遅くしたりしたくありません。
public static void Test()
{
var worker = new BackgroundWorker();
worker.DoWork += Test2;
worker.RunWorkerAsync(new object[] {12345, "test"});
}
private static void Test2(object sender, DoWorkEventArgs e)
{
// Write to log that we got into the method - does not
object[] args = e.Argument as object[];
int num = Convert.ToInt32(args[0]);
string name = (string)args[1];
// call web service method here....
}