Some tips about lock and multi-threading safety:
I. Good example for Singleton threading safety instance
http://en.csharp-online.net/Singleton_design_pattern:_Thread-safe_Singleton
II. Understanding on C# Lock Statement
1. Intermediate representation
http://dotnetperls.com/lock
2. CLS
http://msdn.microsoft.com/en-us/library/aa664735(VS.71).aspx