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
- invalidudtexception.cs
- TextChange.cs
- IdentityReference.cs
- ToolStripPanelCell.cs
- SwitchAttribute.cs
- UrlMappingsSection.cs
- EventLogPermission.cs
- Block.cs
- ConfigXmlDocument.cs
- ShaderEffect.cs
- RuntimeCompatibilityAttribute.cs
- SoapObjectReader.cs
- CatchBlock.cs
- ErrorTableItemStyle.cs
- DynamicResourceExtensionConverter.cs
- WebPartConnectionCollection.cs
- SiteMapNodeCollection.cs
- FixedTextView.cs
- StorageSetMapping.cs
- AxWrapperGen.cs
- ReturnEventArgs.cs
- GridItemPatternIdentifiers.cs
- DesignerRegionMouseEventArgs.cs
- WebPartsPersonalization.cs
- Frame.cs
- NamespaceMapping.cs
- _ContextAwareResult.cs
- panel.cs
- HyperLink.cs
- VariableQuery.cs
- CompositeFontParser.cs
- NamespaceList.cs
- EntitySetDataBindingList.cs
- GifBitmapDecoder.cs
- MenuItemCollectionEditor.cs
- SchemaElementDecl.cs
- RepeaterItemEventArgs.cs
- SqlRowUpdatedEvent.cs
- ViewLoader.cs
- SafeEventLogWriteHandle.cs
- XmlDomTextWriter.cs
- DesignerTransaction.cs
- XmlSubtreeReader.cs
- QueryExpr.cs
- HtmlString.cs
- CompiledAction.cs
- HttpTransportBindingElement.cs
- ContentDesigner.cs
- ClockController.cs
- ExceptionValidationRule.cs
- SynthesizerStateChangedEventArgs.cs
- IdentitySection.cs
- ProvideValueServiceProvider.cs
- Misc.cs
- EntityTransaction.cs
- DuplicateDetector.cs
- CaseStatementSlot.cs
- CommonXSendMessage.cs
- DES.cs
- CompareInfo.cs
- QueryOutputWriter.cs
- IsolatedStorageException.cs
- Permission.cs
- QueryOptionExpression.cs
- BitVec.cs
- SafeFileMappingHandle.cs
- OuterGlowBitmapEffect.cs
- BCryptHashAlgorithm.cs
- IntegerCollectionEditor.cs
- DataTableExtensions.cs
- InstalledFontCollection.cs
- QueryActivatableWorkflowsCommand.cs
- ContextMarshalException.cs
- AssertFilter.cs
- HttpWriter.cs
- SdlChannelSink.cs
- SourceSwitch.cs
- RepeaterDesigner.cs
- DrawingContext.cs
- BindMarkupExtensionSerializer.cs
- SpecialFolderEnumConverter.cs
- SqlLiftIndependentRowExpressions.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- Configuration.cs
- XsdDuration.cs
- ParameterCollection.cs
- DefaultBinder.cs
- GuidelineSet.cs
- HeaderedContentControl.cs
- NavigationFailedEventArgs.cs
- GenericRootAutomationPeer.cs
- MbpInfo.cs
- RawAppCommandInputReport.cs
- SoapWriter.cs
- NullableFloatAverageAggregationOperator.cs
- GridViewRowPresenter.cs
- QueryExpression.cs
- VirtualPath.cs
- DataGridSortCommandEventArgs.cs
- Closure.cs