The hard part is
synchronization of data between threads. This article focuses on Thread
Synchronization in .NET 4.5.
Peter Ritchie says:
"Prior to .NET 4.5 you really
programmed to the .NET memory model. This has changed over time since
ECMA defined it around .NET 2.0; but that model was meant to be a "supermodel"
to deal with the fact that .NET could be deployed to different CPUs with
disparate memory models. Most notably was the Itanium memory model.
This model is much looser than the Intel x86 memory model and allowed things
like a store without a release fence and a load without an acquire fence. "
Continue Reading blog here >>