Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- Section.cs
- WsatAdminException.cs
- ProcessModelSection.cs
- DataSourceControlBuilder.cs
- XamlReader.cs
- DataListGeneralPage.cs
- LoadedOrUnloadedOperation.cs
- XPathNodeList.cs
- WebBrowserSiteBase.cs
- SmiEventSink.cs
- SecurityIdentifierElementCollection.cs
- LocalizabilityAttribute.cs
- CatchDesigner.xaml.cs
- ToolStripItemClickedEventArgs.cs
- BitmapEffectInputConnector.cs
- AssemblyName.cs
- TableFieldsEditor.cs
- HttpModule.cs
- RtfControls.cs
- TransactionProtocolConverter.cs
- FontSourceCollection.cs
- WindowsAltTab.cs
- ValidatingReaderNodeData.cs
- XmlSchemaException.cs
- MetadataUtilsSmi.cs
- ActiveXContainer.cs
- ErrorWrapper.cs
- DiscoveryClientProtocol.cs
- XPathParser.cs
- XmlSchemaDocumentation.cs
- TokenizerHelper.cs
- PreservationFileWriter.cs
- PngBitmapEncoder.cs
- AssociationSet.cs
- DataControlImageButton.cs
- HMACRIPEMD160.cs
- CapabilitiesUse.cs
- SelectionUIHandler.cs
- NTAccount.cs
- HyperlinkAutomationPeer.cs
- SoapIgnoreAttribute.cs
- ConfigurationProviderException.cs
- InvalidComObjectException.cs
- Group.cs
- WCFServiceClientProxyGenerator.cs
- DiscoveryDocumentSerializer.cs
- MatcherBuilder.cs
- DataGridViewComboBoxColumn.cs
- Point4DConverter.cs
- CharAnimationUsingKeyFrames.cs
- SecurityException.cs
- Util.cs
- RegexRunnerFactory.cs
- DataColumnPropertyDescriptor.cs
- AppDomainEvidenceFactory.cs
- ArgumentNullException.cs
- PageSettings.cs
- MultiPropertyDescriptorGridEntry.cs
- TypeKeyValue.cs
- ToggleButton.cs
- GenericIdentity.cs
- OleDbFactory.cs
- UserPersonalizationStateInfo.cs
- TypeResolver.cs
- BitmapDownload.cs
- MsmqIntegrationMessageProperty.cs
- GridViewDeleteEventArgs.cs
- DBParameter.cs
- StringFunctions.cs
- RegexWriter.cs
- PropertyPath.cs
- AudioStateChangedEventArgs.cs
- GlyphTypeface.cs
- DataRow.cs
- ControlsConfig.cs
- RtfToXamlLexer.cs
- COMException.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DropShadowBitmapEffect.cs
- IntranetCredentialPolicy.cs
- HttpRequest.cs
- CLSCompliantAttribute.cs
- DataServiceResponse.cs
- AnnotationObservableCollection.cs
- EndOfStreamException.cs
- HierarchicalDataSourceIDConverter.cs
- ReadOnlyDataSourceView.cs
- KeyValueInternalCollection.cs
- TypeLoadException.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- SiteMapNodeItem.cs
- EntityDesignerDataSourceView.cs
- SmtpMail.cs
- SystemColors.cs
- EdmEntityTypeAttribute.cs
- TargetControlTypeAttribute.cs
- TextEditorTyping.cs
- AssemblyInfo.cs
- ConfigurationLockCollection.cs
- DataReceivedEventArgs.cs