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....
}