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....
}
这取决于您的网站架构。你怎么称呼你的服务?您是否每次创建wcf客户端代理的新实例?它是一个页面类字段(可能注入)?请添加缺少的代码。 – 2013-04-22 11:54:03