我有一些WCF服務服務的方法LongTimeMethod。爲避免請求超時,我下一步做:Wcf中的線程
public void LongTimeMethod(...)
{
Thread t = new Thread(delegate() {
LocalLongTimeMethod(...);
});
t.IsBackground = true;
t.Start();
}
private void LocalLongTimeMethod(...)
{
SomeOperations();
}
之後,SomeOperations運行速度快了10倍(!?)。 SomeOperations的結果是正確的。那麼原因是什麼,這是否正常?
還有一個問題:服務實例活着,而我的線程還沒有完成?
+1着火而忘記。添加了有關不從服務器進程創建線程的其他信息。 – bryanmac
當我說方法執行速度快10倍時,我的意思是秒錶的結果。我在SomeOperations()之前啓動它並在其執行後停止。我試過單向合同,結果是(例如)下一個:正常執行 - 3分鐘,使用單向合同 - 3分鐘,使用線程 - 30秒。重要的是我在**線程內使用了Stopwatch **。 –