Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This is an internal email from a CLR Developer. I recorded it here just to share the information. I do not work in that area and I can't answer any question.
From: Sent: To: Subject:
The Whidbey
RTM implementation of Thread.GetData/Thread.SetData has several scalability issues
caused by global locks being taken. The appdomain-global lock
taken in LocalDataStore.SetData is one of them. There is another global lock taken in ThreadNative::GetDomainLocalStore that is even worse since it is
process-global.
The best
workaround is to use [ThreadStatic] variables instead of Thread.GetData/Thread.SetData:
[ThreadStatic]
static Object foo;
[ThreadStatic] variables do not suffer from the contention
issues. Moreover [ThreadStatic] variables are several times faster compared to Thread.GetData/Thread.SetData.
Comments
- Anonymous
March 16, 2007
PingBack from http://tanveerbadar.wordpress.com/2007/03/16/the-way-to-tls-in-clr/