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
- WindowsTreeView.cs
- sqlstateclientmanager.cs
- Type.cs
- StylusPointPropertyInfo.cs
- _NegoStream.cs
- RequestTimeoutManager.cs
- Vector3D.cs
- MetadataArtifactLoaderFile.cs
- Metadata.cs
- TemplateControlCodeDomTreeGenerator.cs
- Context.cs
- ComplexTypeEmitter.cs
- ValidatingPropertiesEventArgs.cs
- PolyQuadraticBezierSegment.cs
- FileFormatException.cs
- ReferenceSchema.cs
- CodeArrayCreateExpression.cs
- TailCallAnalyzer.cs
- Expressions.cs
- ControlBindingsCollection.cs
- DeclaredTypeElementCollection.cs
- TextDpi.cs
- StringComparer.cs
- CatalogPartCollection.cs
- DecimalAnimationUsingKeyFrames.cs
- Int32Storage.cs
- NetCodeGroup.cs
- peersecurityelement.cs
- DBCommandBuilder.cs
- UntypedNullExpression.cs
- QuotedPairReader.cs
- ObjectParameterCollection.cs
- ChtmlImageAdapter.cs
- Crypto.cs
- GuidTagList.cs
- ComboBoxItem.cs
- C14NUtil.cs
- WorkflowValidationFailedException.cs
- ProxyWebPartManager.cs
- BCLDebug.cs
- Point4DValueSerializer.cs
- XmlC14NWriter.cs
- DialogWindow.cs
- CompositeScriptReferenceEventArgs.cs
- LicenseException.cs
- EditorZoneBase.cs
- PortCache.cs
- safelink.cs
- XmlToDatasetMap.cs
- Soap12FormatExtensions.cs
- MessageQueueEnumerator.cs
- DataTableNewRowEvent.cs
- FloatUtil.cs
- ToolStripLocationCancelEventArgs.cs
- XamlHostingSection.cs
- DispatchProxy.cs
- SystemEvents.cs
- LoadedOrUnloadedOperation.cs
- DiscoveryClientReferences.cs
- Dictionary.cs
- PropertyCollection.cs
- CompressionTransform.cs
- TemplateBindingExpressionConverter.cs
- DragDrop.cs
- Rules.cs
- UdpRetransmissionSettings.cs
- BinaryNode.cs
- EventDescriptor.cs
- CollectionContainer.cs
- ObjectDataSourceFilteringEventArgs.cs
- ArgumentOutOfRangeException.cs
- TableItemProviderWrapper.cs
- Cloud.cs
- SQLStringStorage.cs
- __Filters.cs
- WebPartRestoreVerb.cs
- RolePrincipal.cs
- MaskDescriptor.cs
- BaseAsyncResult.cs
- UIPropertyMetadata.cs
- StringPropertyBuilder.cs
- SystemFonts.cs
- HtmlShimManager.cs
- WhitespaceSignificantCollectionAttribute.cs
- MimeTypeAttribute.cs
- FaultCallbackWrapper.cs
- TypeListConverter.cs
- Function.cs
- AncestorChangedEventArgs.cs
- WebEventTraceProvider.cs
- DockEditor.cs
- DesignerActionGlyph.cs
- WindowsListViewItem.cs
- PageResolution.cs
- TargetParameterCountException.cs
- DesignerLoader.cs
- ECDiffieHellman.cs
- base64Transforms.cs
- StringValidatorAttribute.cs
- ElementHost.cs