Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Runtime / Pool.cs / 1305376 / Pool.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Runtime { using System; using System.Runtime; // Pooldefined below is a LIFO pool of Pool.IClearable objects. // It is strongly typed to make the Acquire/Release methods more user // friendly. To use this pool, subclass it with a concrete type and // override the CreateNew method. Typically, the type of T will // have a default ctor and will use an Initialize(...) method in order // to configure it for use. // NOTE: CreateNew is required because T : new() requires that the default // ctor is public. We did not want to put public ctors on some of our // pooled resources (like NativeActivityContext). abstract class Pool { const int DefaultPoolSize = 10; T[] items; int count; int poolSize; public Pool() : this(DefaultPoolSize) { } public Pool(int poolSize) { this.items = new T[poolSize]; this.poolSize = poolSize; } public T Acquire() { if (this.count > 0) { this.count--; T item = this.items[this.count]; return item; } else { return CreateNew(); } } protected abstract T CreateNew(); public void Release(T item) { if (this.count < this.poolSize) { this.items[this.count] = item; this.count++; } } } } // 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
- TypeAccessException.cs
- serverconfig.cs
- XpsImageSerializationService.cs
- Int32Storage.cs
- VisualBrush.cs
- ImageAnimator.cs
- ReadOnlyHierarchicalDataSource.cs
- LingerOption.cs
- ErrorRuntimeConfig.cs
- IndentTextWriter.cs
- ScopeElementCollection.cs
- EmptyElement.cs
- SelectionHighlightInfo.cs
- ApplicationSecurityManager.cs
- DbConvert.cs
- ImageCodecInfo.cs
- Int16Animation.cs
- XmlDownloadManager.cs
- DataServices.cs
- DataSourceUtil.cs
- ProtectedProviderSettings.cs
- SeekableReadStream.cs
- BulletedListDesigner.cs
- TranslateTransform.cs
- ManagedWndProcTracker.cs
- NullReferenceException.cs
- ButtonBaseAutomationPeer.cs
- Table.cs
- filewebrequest.cs
- EditorPartCollection.cs
- DbProviderServices.cs
- DeploymentSectionCache.cs
- PathData.cs
- TransformerInfoCollection.cs
- CompressedStack.cs
- PerfCounterSection.cs
- PersonalizationStateQuery.cs
- PreservationFileReader.cs
- DateTimeFormatInfo.cs
- TextTreeTextElementNode.cs
- HMACSHA512.cs
- KeyValueSerializer.cs
- DataMisalignedException.cs
- COM2TypeInfoProcessor.cs
- PersonalizationDictionary.cs
- RadialGradientBrush.cs
- PersonalizationStateInfoCollection.cs
- ApplicationProxyInternal.cs
- FormatterServices.cs
- Number.cs
- StateItem.cs
- ThreadExceptionEvent.cs
- Matrix.cs
- wmiutil.cs
- CatalogZoneBase.cs
- XmlSchemaException.cs
- NewArrayExpression.cs
- MonthChangedEventArgs.cs
- Merger.cs
- CheckBoxPopupAdapter.cs
- DesignParameter.cs
- Msec.cs
- UriTemplateTableMatchCandidate.cs
- PageAsyncTaskManager.cs
- WebPartActionVerb.cs
- IBuiltInEvidence.cs
- FormsIdentity.cs
- InputMethodStateChangeEventArgs.cs
- DiffuseMaterial.cs
- GetMemberBinder.cs
- StringFreezingAttribute.cs
- WindowsStartMenu.cs
- SecurityDescriptor.cs
- AuthenticationException.cs
- TextCompositionEventArgs.cs
- StoreAnnotationsMap.cs
- AsymmetricKeyExchangeFormatter.cs
- BitmapDownload.cs
- DocumentStatusResources.cs
- CapabilitiesSection.cs
- ListMarkerLine.cs
- CallTemplateAction.cs
- SmiRequestExecutor.cs
- XsdCachingReader.cs
- BackgroundWorker.cs
- TextTreeNode.cs
- SqlUserDefinedAggregateAttribute.cs
- PropertyPushdownHelper.cs
- XmlAttributes.cs
- UserControlCodeDomTreeGenerator.cs
- QuadraticBezierSegment.cs
- HttpConfigurationContext.cs
- AssemblyCollection.cs
- Parameter.cs
- ComplexBindingPropertiesAttribute.cs
- SHA512Managed.cs
- ProgressiveCrcCalculatingStream.cs
- DataControlPagerLinkButton.cs
- GradientSpreadMethodValidation.cs
- TraversalRequest.cs