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
- LookupBindingPropertiesAttribute.cs
- NameNode.cs
- InternalBase.cs
- TransmissionStrategy.cs
- Operand.cs
- MetadataProperty.cs
- MetadataCollection.cs
- EdmToObjectNamespaceMap.cs
- BidPrivateBase.cs
- SafeNativeMethods.cs
- GridViewRowPresenter.cs
- VisualBasic.cs
- RegexRunner.cs
- ParameterBinding.cs
- ContainerUIElement3D.cs
- FilteredSchemaElementLookUpTable.cs
- FixedPosition.cs
- XdrBuilder.cs
- Int32KeyFrameCollection.cs
- ConstructorExpr.cs
- ColumnTypeConverter.cs
- BindingValueChangedEventArgs.cs
- PageSetupDialog.cs
- RuntimeArgumentHandle.cs
- MappingMetadataHelper.cs
- SettingsPropertyNotFoundException.cs
- BindableAttribute.cs
- ControlDesigner.cs
- TemplateXamlTreeBuilder.cs
- XmlObjectSerializerContext.cs
- CodeArrayIndexerExpression.cs
- ExecutionContext.cs
- Menu.cs
- BindStream.cs
- CacheEntry.cs
- InheritanceRules.cs
- LambdaCompiler.cs
- EmptyCollection.cs
- ViewCellSlot.cs
- CodeDomExtensionMethods.cs
- BitmapMetadataEnumerator.cs
- ConfigurationElementCollection.cs
- KnownBoxes.cs
- ConnectionOrientedTransportChannelFactory.cs
- ServerValidateEventArgs.cs
- GroupedContextMenuStrip.cs
- ETagAttribute.cs
- MoveSizeWinEventHandler.cs
- DeploymentSectionCache.cs
- DataRecordInternal.cs
- SimpleTableProvider.cs
- HttpCookie.cs
- TransformedBitmap.cs
- Cloud.cs
- ChildChangedEventArgs.cs
- SHA384Managed.cs
- HttpContextServiceHost.cs
- Signature.cs
- HwndProxyElementProvider.cs
- KeyedCollection.cs
- CodeTryCatchFinallyStatement.cs
- MdiWindowListStrip.cs
- MemberInfoSerializationHolder.cs
- AtomicFile.cs
- WebPartAddingEventArgs.cs
- BindUriHelper.cs
- DataControlCommands.cs
- QuotedStringWriteStateInfo.cs
- ProgressBarRenderer.cs
- StrongNamePublicKeyBlob.cs
- HttpRequestContext.cs
- DefaultCompensation.cs
- AttributeCollection.cs
- XmlSerializer.cs
- CheckBoxPopupAdapter.cs
- TextTreeText.cs
- WebPartCancelEventArgs.cs
- DeviceContext2.cs
- GradientSpreadMethodValidation.cs
- ManifestResourceInfo.cs
- RangeValuePatternIdentifiers.cs
- AutomationPeer.cs
- FreezableDefaultValueFactory.cs
- SelectionBorderGlyph.cs
- DataGridViewRowsRemovedEventArgs.cs
- SqlNotificationRequest.cs
- XamlSerializationHelper.cs
- ControlBuilderAttribute.cs
- PerfService.cs
- SelectionItemPattern.cs
- ActivityCodeDomReferenceService.cs
- NotFiniteNumberException.cs
- XDRSchema.cs
- ToolboxItemWrapper.cs
- ListItemCollection.cs
- ToolStripComboBox.cs
- CleanUpVirtualizedItemEventArgs.cs
- DynamicHyperLink.cs
- GridViewRowPresenter.cs
- SystemUnicastIPAddressInformation.cs