2012-09-28 226 views
2

我有一個Windows服務啓動WCF服務的主機。我有一個定義ServiceContract和OperationContracts的接口。有一個類實現了這個接口。 ServiceBehavior屬性是PerSession。據我所知,每個會話在WCF服務上都有它自己的類實例。WCF線程睡眠

[ServiceBehavior(InstanceContextMode = ServiceModel.InstanceContextMode.PerSession)] 
public class WCFServiceImplementation : WCFServiceInterface 
{ 

} 

現在我WCFServiceImplementation一些地方我打電話Threading.Thread.Sleep(1000)(也有一些競爭條件)。我的問題 - 在線程處於睡眠狀態時,服務是否仍能被其他客戶端調用?我對線程不是很熟悉,每個類實例是否在它自己的獨立線程上運行WCF服務。

+1

Thread.Sleep永遠不會是競爭條件的答案...... – jeroenh

+0

@jeroenh我本來希望避免,但我需要與不受我的代碼控制的外部應用程序進行通信。 – swiftgp

+0

您可以添加一些關於您與第三方應用溝通的細節,也許我們可以提供更好的解決方案。 –

回答

0

是的,該服務仍然可以由其他客戶端調用,因爲他們將在其他會話。