Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Odbc / OdbcEnvironment.cs / 1305376 / 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
- ConfigurationElementCollection.cs
- ProcessModelInfo.cs
- RectValueSerializer.cs
- ParserExtension.cs
- StringCollection.cs
- Profiler.cs
- ProfileModule.cs
- hresults.cs
- GradientBrush.cs
- EventEntry.cs
- BindingsCollection.cs
- SqlStatistics.cs
- ProxyHwnd.cs
- GradientStopCollection.cs
- ConditionalExpression.cs
- ExceptionUtil.cs
- SecureConversationDriver.cs
- RoutingChannelExtension.cs
- WorkflowApplicationCompletedEventArgs.cs
- UnmanagedBitmapWrapper.cs
- AppDomainFactory.cs
- FreezableDefaultValueFactory.cs
- arabicshape.cs
- X509ClientCertificateCredentialsElement.cs
- PrintControllerWithStatusDialog.cs
- TableStyle.cs
- HostingEnvironment.cs
- XmlIncludeAttribute.cs
- Range.cs
- GroupBoxRenderer.cs
- XpsThumbnail.cs
- SizeAnimationClockResource.cs
- PersonalizableTypeEntry.cs
- StructuredTypeEmitter.cs
- ListViewSortEventArgs.cs
- KeyedPriorityQueue.cs
- ListBindableAttribute.cs
- XmlEntity.cs
- DataGridViewColumnConverter.cs
- MediaTimeline.cs
- AnnotationComponentChooser.cs
- TaiwanLunisolarCalendar.cs
- HttpVersion.cs
- RC2.cs
- linebase.cs
- CustomValidator.cs
- Object.cs
- XNodeNavigator.cs
- TextSimpleMarkerProperties.cs
- coordinator.cs
- Perspective.cs
- EntityViewContainer.cs
- AvtEvent.cs
- DataTableClearEvent.cs
- SettingsPropertyValueCollection.cs
- PageCodeDomTreeGenerator.cs
- HttpDebugHandler.cs
- CompilationLock.cs
- TextFindEngine.cs
- DataContractSerializerOperationGenerator.cs
- XamlReader.cs
- SoapObjectWriter.cs
- _SSPISessionCache.cs
- InputBinding.cs
- DetailsView.cs
- ZoneMembershipCondition.cs
- SessionStateSection.cs
- PropVariant.cs
- ClientFormsIdentity.cs
- OperationFormatStyle.cs
- DrawListViewSubItemEventArgs.cs
- Themes.cs
- DataGridDesigner.cs
- CompiledXpathExpr.cs
- ParsedAttributeCollection.cs
- OleAutBinder.cs
- Math.cs
- CategoryAttribute.cs
- DataControlFieldHeaderCell.cs
- SoapSchemaExporter.cs
- CssStyleCollection.cs
- ClientSettings.cs
- DataGridViewTextBoxColumn.cs
- ButtonColumn.cs
- SiteMapProvider.cs
- HtmlTable.cs
- UserControl.cs
- CustomPopupPlacement.cs
- Object.cs
- SlipBehavior.cs
- MatrixIndependentAnimationStorage.cs
- CompositeKey.cs
- Regex.cs
- SqlInternalConnectionSmi.cs
- TextElementEnumerator.cs
- InstancePersistenceException.cs
- ReadOnlyObservableCollection.cs
- PropertyBuilder.cs
- ProxyFragment.cs
- ResXResourceReader.cs