Statically Initialized Singleton

Lazy thread-safe Singleton using LazyT

Lazy thread-safe Singleton using Double Checked Locking

Lazy thread safe singleton for .NET 3.5 or older alternate implementation

Disposing of the Singleton instance when it is no longer needed