Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Data / System / Data / Odbc / OdbcEnvironment.cs / 1 / OdbcEnvironment.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Threading; namespace System.Data.Odbc { sealed internal class OdbcEnvironment { static private object _globalEnvironmentHandle; static private object _globalEnvironmentHandleLock = new object(); private OdbcEnvironment () {} // default const. static internal OdbcEnvironmentHandle GetGlobalEnvironmentHandle() { OdbcEnvironmentHandle globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { ADP.CheckVersionMDAC(true); lock(_globalEnvironmentHandleLock) { globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { globalEnvironmentHandle = new OdbcEnvironmentHandle(); _globalEnvironmentHandle = globalEnvironmentHandle; } } } return globalEnvironmentHandle; } static internal void ReleaseObjectPool() { object globalEnvironmentHandle = Interlocked.Exchange(ref _globalEnvironmentHandle, null); if(null != globalEnvironmentHandle) { (globalEnvironmentHandle as OdbcEnvironmentHandle).Dispose(); // internally refcounted so will happen correctly } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Threading; namespace System.Data.Odbc { sealed internal class OdbcEnvironment { static private object _globalEnvironmentHandle; static private object _globalEnvironmentHandleLock = new object(); private OdbcEnvironment () {} // default const. static internal OdbcEnvironmentHandle GetGlobalEnvironmentHandle() { OdbcEnvironmentHandle globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { ADP.CheckVersionMDAC(true); lock(_globalEnvironmentHandleLock) { globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { globalEnvironmentHandle = new OdbcEnvironmentHandle(); _globalEnvironmentHandle = globalEnvironmentHandle; } } } return globalEnvironmentHandle; } static internal void ReleaseObjectPool() { object globalEnvironmentHandle = Interlocked.Exchange(ref _globalEnvironmentHandle, null); if(null != globalEnvironmentHandle) { (globalEnvironmentHandle as OdbcEnvironmentHandle).Dispose(); // internally refcounted so will happen correctly } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Attachment.cs
- BlobPersonalizationState.cs
- XmlSchemaAnyAttribute.cs
- SortedList.cs
- MatrixValueSerializer.cs
- _RegBlobWebProxyDataBuilder.cs
- DateTimeStorage.cs
- NestPullup.cs
- ManagementPath.cs
- StylusShape.cs
- AppDomainUnloadedException.cs
- ScaleTransform3D.cs
- ColorConvertedBitmapExtension.cs
- XmlNode.cs
- DatePickerAutomationPeer.cs
- PersonalizationStateQuery.cs
- ClonableStack.cs
- XmlWrappingReader.cs
- TileModeValidation.cs
- XmlText.cs
- IpcClientChannel.cs
- XmlSchemaAttributeGroupRef.cs
- SqlDataSourceCommandEventArgs.cs
- HttpCacheVary.cs
- OrderPreservingSpoolingTask.cs
- PictureBox.cs
- TemplateControlBuildProvider.cs
- InvokeFunc.cs
- TraceFilter.cs
- ContainerFilterService.cs
- Padding.cs
- x509store.cs
- Int64.cs
- GZipDecoder.cs
- Themes.cs
- DataGridViewCell.cs
- SslStream.cs
- NullableLongMinMaxAggregationOperator.cs
- FontSizeConverter.cs
- SchemaMerger.cs
- PreloadedPackages.cs
- TraceSource.cs
- UpdateTracker.cs
- MemberInfoSerializationHolder.cs
- HybridObjectCache.cs
- QilReference.cs
- SqlXmlStorage.cs
- TreeNodeBindingDepthConverter.cs
- FixedSOMTextRun.cs
- RegisteredDisposeScript.cs
- CodeMemberEvent.cs
- PhonemeEventArgs.cs
- FontInfo.cs
- WindowsListViewScroll.cs
- GroupLabel.cs
- ProtocolsConfigurationHandler.cs
- PreservationFileWriter.cs
- SecurityKeyIdentifier.cs
- CodeIdentifier.cs
- HostingEnvironmentSection.cs
- DataGridCell.cs
- ManifestResourceInfo.cs
- MD5CryptoServiceProvider.cs
- XslAst.cs
- Axis.cs
- HuffmanTree.cs
- DictionaryKeyPropertyAttribute.cs
- SettingsContext.cs
- QueryOperatorEnumerator.cs
- GPStream.cs
- DesignerForm.cs
- CfgParser.cs
- TreeNodeClickEventArgs.cs
- SynchronizingStream.cs
- StructuredTypeInfo.cs
- SizeAnimationUsingKeyFrames.cs
- DateTimeValueSerializerContext.cs
- BCryptSafeHandles.cs
- MultilineStringConverter.cs
- SiteMembershipCondition.cs
- Stylesheet.cs
- CharacterString.cs
- XmlDocumentSerializer.cs
- WhereQueryOperator.cs
- ExpressionPrinter.cs
- externdll.cs
- RuntimeIdentifierPropertyAttribute.cs
- Viewport3DAutomationPeer.cs
- DesignerProperties.cs
- ContainerSelectorGlyph.cs
- VariableAction.cs
- HighlightVisual.cs
- BitmapSource.cs
- LocatorPartList.cs
- BindingBase.cs
- OLEDB_Enum.cs
- NativeMethods.cs
- xmlsaver.cs
- HttpDigestClientCredential.cs
- ConfigurationValue.cs