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
- HtmlElementCollection.cs
- RowBinding.cs
- IndentedTextWriter.cs
- WindowsStatic.cs
- SelectingProviderEventArgs.cs
- Helper.cs
- SoapReflectionImporter.cs
- TraceUtility.cs
- WindowExtensionMethods.cs
- Viewport3DAutomationPeer.cs
- Helpers.cs
- MdiWindowListStrip.cs
- DomainLiteralReader.cs
- BmpBitmapEncoder.cs
- MessageSecurityOverHttp.cs
- CodeEventReferenceExpression.cs
- SqlInternalConnectionTds.cs
- TemplateParser.cs
- UnitySerializationHolder.cs
- TemplateBamlRecordReader.cs
- SHA384Managed.cs
- Panel.cs
- NotifyCollectionChangedEventArgs.cs
- XmlDocumentSerializer.cs
- Simplifier.cs
- LoggedException.cs
- filewebresponse.cs
- ExceptionUtil.cs
- ProjectionPlanCompiler.cs
- TreeViewItem.cs
- Html32TextWriter.cs
- _NetRes.cs
- SplayTreeNode.cs
- RoleGroup.cs
- ClientData.cs
- BaseCodePageEncoding.cs
- EventWaitHandle.cs
- ProxyAttribute.cs
- SafeNativeMethods.cs
- HtmlInputSubmit.cs
- DataReaderContainer.cs
- TagMapCollection.cs
- ScrollViewerAutomationPeer.cs
- _ListenerResponseStream.cs
- CodeCompileUnit.cs
- VectorAnimationBase.cs
- HandlerFactoryWrapper.cs
- EncryptedPackage.cs
- OverflowException.cs
- ServiceDocumentFormatter.cs
- InvalidOleVariantTypeException.cs
- CloudCollection.cs
- ControlPager.cs
- HttpGetServerProtocol.cs
- TextRunProperties.cs
- OpenTypeLayout.cs
- RemotingClientProxy.cs
- Compensation.cs
- WorkflowExecutor.cs
- ResourceAssociationType.cs
- xml.cs
- XmlTextAttribute.cs
- Configuration.cs
- validation.cs
- ExtensionFile.cs
- DefaultBindingPropertyAttribute.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- SingleKeyFrameCollection.cs
- DelayLoadType.cs
- IISUnsafeMethods.cs
- SimpleApplicationHost.cs
- RawStylusInputReport.cs
- CompiledQueryCacheKey.cs
- InfiniteIntConverter.cs
- EmptyReadOnlyDictionaryInternal.cs
- dataprotectionpermission.cs
- AuthenticationException.cs
- TemplatePropertyEntry.cs
- PropertyInfoSet.cs
- TreeNodeConverter.cs
- OLEDB_Util.cs
- SystemWebSectionGroup.cs
- Avt.cs
- EntityClassGenerator.cs
- MenuRendererStandards.cs
- RuntimeResourceSet.cs
- SchemaType.cs
- TransformerTypeCollection.cs
- ConnectionPoolManager.cs
- CodeBlockBuilder.cs
- SafeNativeMethods.cs
- WebPartDisplayModeEventArgs.cs
- DeferredTextReference.cs
- PassportAuthenticationEventArgs.cs
- PreparingEnlistment.cs
- SHA1CryptoServiceProvider.cs
- SafeFileHandle.cs
- ConnectionPoint.cs
- NetCodeGroup.cs
- ContextConfiguration.cs