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