I've service which is marked with the ServiceBehavior attribute
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMo开发者_开发知识库de.Multiple)]
Is there any chance for the operations in this service to be executed by same thread?
I'm storing an important data in ThreadLocal variable, which is to be used for single execution of an operation.
No,
Each request is answered in a different thread. the InstanceContextMode.Single attribute specifies that the service uses the same object (and its members) for each request.
Be aware that threads in WCF are handled by ThreadPool => Thread is not disposed after request processing but returned to pool so it can be reused for other request processing. I'm not sure how this works with ThreadLocal<T> but with ThreadStaticAttribute this can easily pass the value from one request processing to next random request processing which will use the same Thread.
精彩评论