Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / SynchronizedDisposablePool.cs / 1 / SynchronizedDisposablePool.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel { using System.Collections.Generic; using System.Threading; class SynchronizedDisposablePoolwhere T : class, IDisposable { List items; int maxCount; bool disposed; public SynchronizedDisposablePool(int maxCount) { this.items = new List (); this.maxCount = maxCount; } object ThisLock { get { return this; } } public void Dispose() { T[] items; lock (ThisLock) { if (!disposed) { disposed = true; if (this.items.Count > 0) { items = new T[this.items.Count]; this.items.CopyTo(items, 0); this.items.Clear(); } else { items = null; } } else { items = null; } } if (items != null) { for (int i = 0; i < items.Length; i++) { items[i].Dispose(); } } } public bool Return(T value) { if (!disposed && this.items.Count < this.maxCount) { lock (ThisLock) { if (!disposed && this.items.Count < this.maxCount) { this.items.Add(value); return true; } } } return false; } public T Take() { if (!disposed && this.items.Count > 0) { lock (ThisLock) { if (!disposed && this.items.Count > 0) { int index = this.items.Count - 1; T item = this.items[index]; this.items.RemoveAt(index); return item; } } } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DiscoveryDocumentLinksPattern.cs
- CommandField.cs
- WindowsListViewScroll.cs
- MatrixTransform3D.cs
- CollectionChangeEventArgs.cs
- ExtendedPropertyDescriptor.cs
- WorkflowTimerService.cs
- EntityDataSourceMemberPath.cs
- StrongNameMembershipCondition.cs
- QueryOutputWriter.cs
- PerformanceCountersElement.cs
- TransactionInterop.cs
- StrongNameMembershipCondition.cs
- ZipIOFileItemStream.cs
- XPathConvert.cs
- NamedPipeChannelListener.cs
- URLAttribute.cs
- SerializationBinder.cs
- DesignTimeVisibleAttribute.cs
- FrameDimension.cs
- HttpHandlerActionCollection.cs
- LayoutSettings.cs
- FormsAuthenticationCredentials.cs
- JpegBitmapEncoder.cs
- VariantWrapper.cs
- HtmlPageAdapter.cs
- DataListItem.cs
- XmlQualifiedName.cs
- CroppedBitmap.cs
- ConfigurationManagerInternal.cs
- CleanUpVirtualizedItemEventArgs.cs
- BulletDecorator.cs
- ColorContextHelper.cs
- EventMappingSettings.cs
- FrameworkRichTextComposition.cs
- WebAdminConfigurationHelper.cs
- Underline.cs
- DataSourceView.cs
- DrawingBrush.cs
- SectionRecord.cs
- PropertyTab.cs
- OSFeature.cs
- PersonalizationState.cs
- XamlTypeMapper.cs
- XPathDocumentIterator.cs
- DataError.cs
- UrlRoutingModule.cs
- GeneralTransform3D.cs
- TextBlockAutomationPeer.cs
- XomlCompilerError.cs
- RightsManagementPermission.cs
- RemotingConfiguration.cs
- RestClientProxyHandler.cs
- DesignerValidatorAdapter.cs
- TypeDescriptorFilterService.cs
- ListViewUpdatedEventArgs.cs
- ClientBuildManagerCallback.cs
- TextTreeRootTextBlock.cs
- ScriptReferenceBase.cs
- Model3DGroup.cs
- CoTaskMemUnicodeSafeHandle.cs
- SystemTcpConnection.cs
- MethodCallConverter.cs
- BoolExpressionVisitors.cs
- MainMenu.cs
- TransformCryptoHandle.cs
- ScriptControlManager.cs
- ConfigXmlSignificantWhitespace.cs
- ListControlConvertEventArgs.cs
- PersonalizationAdministration.cs
- TraceLevelStore.cs
- ArrayConverter.cs
- CodeTypeReference.cs
- HTMLTagNameToTypeMapper.cs
- ManipulationStartingEventArgs.cs
- ParameterModifier.cs
- ThreadExceptionDialog.cs
- ValidatingReaderNodeData.cs
- HelpInfo.cs
- SelectionPatternIdentifiers.cs
- NameNode.cs
- httpstaticobjectscollection.cs
- CodeVariableDeclarationStatement.cs
- RichTextBoxAutomationPeer.cs
- ObjectItemLoadingSessionData.cs
- GridSplitterAutomationPeer.cs
- FormViewInsertedEventArgs.cs
- TextContainerChangedEventArgs.cs
- XPathExpr.cs
- DisplayNameAttribute.cs
- TextRunProperties.cs
- JsonEncodingStreamWrapper.cs
- ObjectToIdCache.cs
- loginstatus.cs
- SafeBitVector32.cs
- TrackBar.cs
- ColorPalette.cs
- Soap12FormatExtensions.cs
- XNodeValidator.cs
- Stack.cs