Doble comprobación de bloqueo en .NET

Me encontré con estoartículo discutiendo por qué el paradigma de bloqueo de doble verificación está roto en Java. Es el paradigma válido para .NET (en particular, C #), si se declaran variablesvolatile?