Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Concurrent / Partitioner.cs / 1305376 / Partitioner.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // Partitioner.cs // //[....] // // Represents a particular way of splitting a collection into multiple partitions. // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System; using System.Collections.Generic; using System.Security.Permissions; using System.Threading; namespace System.Collections.Concurrent { ////// Represents a particular manner of splitting a data source into multiple partitions. /// ///Type of the elements in the collection. ////// [HostProtection(Synchronization = true, ExternalThreading = true)] public abstract class Partitioner/// Inheritors of ///must adhere to the following rules: /// ///
///- ///
should throw a /// if the requested partition count is less than or /// equal to zero. - ///
should always return a number of enumerables equal to the requested /// partition count. If the partitioner runs out of data and cannot create as many partitions as /// requested, an empty enumerator should be returned for each of the remaining partitions. If this rule /// is not followed, consumers of the implementation may throw a . - ///
and /// should never return null. If null is returned, a consumer of the implementation may throw a /// . - ///
and should always return /// partitions that can fully and uniquely enumerate the input data source. All of the data and only the /// data contained in the input source should be enumerated, with no duplication that was not already in /// the input, unless specifically required by the particular partitioner's design. If this is not /// followed, the output ordering may be scrambled. { /// /// Partitions the underlying collection into the given number of partitions. /// /// The number of partitions to create. ///A list containing public abstract IListenumerators. > GetPartitions(int partitionCount); /// /// Gets whether additional partitions can be created dynamically. /// ////// true if the ///can create partitions dynamically as they are /// requested; false if the can only allocate /// partitions statically. /// /// public virtual bool SupportsDynamicPartitions { get { return false; } } ////// If a derived class does not override and implement ///, /// should return false. The value of should not vary over the lifetime of this instance. /// /// Creates an object that can partition the underlying collection into a variable number of /// partitions. /// ////// ////// The returned object implements the ///interface. Calling GetEnumerator on the /// object creates another partition over the sequence. ////// The ///method is only supported if the /// property returns true. /// An object that can create partitions over the underlying data source. ///Dynamic partitioning is not supported by this /// partitioner. public virtual IEnumerableGetDynamicPartitions() { throw new NotSupportedException(Environment.GetResourceString("Partitioner_DynamicPartitionsNotSupported")); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // Partitioner.cs // // [....] // // Represents a particular way of splitting a collection into multiple partitions. // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System; using System.Collections.Generic; using System.Security.Permissions; using System.Threading; namespace System.Collections.Concurrent { ////// Represents a particular manner of splitting a data source into multiple partitions. /// ///Type of the elements in the collection. ////// [HostProtection(Synchronization = true, ExternalThreading = true)] public abstract class Partitioner/// Inheritors of ///must adhere to the following rules: /// ///
///- ///
should throw a /// if the requested partition count is less than or /// equal to zero. - ///
should always return a number of enumerables equal to the requested /// partition count. If the partitioner runs out of data and cannot create as many partitions as /// requested, an empty enumerator should be returned for each of the remaining partitions. If this rule /// is not followed, consumers of the implementation may throw a . - ///
and /// should never return null. If null is returned, a consumer of the implementation may throw a /// . - ///
and should always return /// partitions that can fully and uniquely enumerate the input data source. All of the data and only the /// data contained in the input source should be enumerated, with no duplication that was not already in /// the input, unless specifically required by the particular partitioner's design. If this is not /// followed, the output ordering may be scrambled. { /// /// Partitions the underlying collection into the given number of partitions. /// /// The number of partitions to create. ///A list containing public abstract IListenumerators. > GetPartitions(int partitionCount); /// /// Gets whether additional partitions can be created dynamically. /// ////// true if the ///can create partitions dynamically as they are /// requested; false if the can only allocate /// partitions statically. /// /// public virtual bool SupportsDynamicPartitions { get { return false; } } ////// If a derived class does not override and implement ///, /// should return false. The value of should not vary over the lifetime of this instance. /// /// Creates an object that can partition the underlying collection into a variable number of /// partitions. /// ////// ////// The returned object implements the ///interface. Calling GetEnumerator on the /// object creates another partition over the sequence. ////// The ///method is only supported if the /// property returns true. /// An object that can create partitions over the underlying data source. ///Dynamic partitioning is not supported by this /// partitioner. public virtual IEnumerableGetDynamicPartitions() { throw new NotSupportedException(Environment.GetResourceString("Partitioner_DynamicPartitionsNotSupported")); } } } // 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
- EncryptedPackage.cs
- BaseResourcesBuildProvider.cs
- HashHelper.cs
- InlineObject.cs
- CounterCreationDataCollection.cs
- Variant.cs
- PropertyReferenceSerializer.cs
- PerformanceCounterLib.cs
- FontStretches.cs
- UIElementParagraph.cs
- ReferencedAssembly.cs
- DataGridViewCellFormattingEventArgs.cs
- TcpHostedTransportConfiguration.cs
- FormatVersion.cs
- FormatterServices.cs
- DbParameterCollectionHelper.cs
- HttpStreams.cs
- DPTypeDescriptorContext.cs
- ReachFixedDocumentSerializerAsync.cs
- DrawingContextDrawingContextWalker.cs
- OleDbConnectionFactory.cs
- CacheChildrenQuery.cs
- WindowsUpDown.cs
- AssociationProvider.cs
- PreviewKeyDownEventArgs.cs
- Command.cs
- securitycriticaldataClass.cs
- CancellationTokenRegistration.cs
- VirtualizedContainerService.cs
- BindStream.cs
- WebPartZoneAutoFormat.cs
- UIHelper.cs
- FocusWithinProperty.cs
- ResourceReferenceExpressionConverter.cs
- SrgsElementFactoryCompiler.cs
- _Rfc2616CacheValidators.cs
- IResourceProvider.cs
- EnterpriseServicesHelper.cs
- AncestorChangedEventArgs.cs
- GatewayIPAddressInformationCollection.cs
- SplashScreenNativeMethods.cs
- HtmlGenericControl.cs
- SqlTransaction.cs
- PackWebRequest.cs
- GlobalizationSection.cs
- TextTreeRootNode.cs
- GatewayDefinition.cs
- NativeMethods.cs
- PagedControl.cs
- XmlDictionaryString.cs
- HtmlHead.cs
- QilBinary.cs
- UTF7Encoding.cs
- MessageDesigner.cs
- Decoder.cs
- DataSysAttribute.cs
- ChtmlTextWriter.cs
- PackWebRequestFactory.cs
- METAHEADER.cs
- ProjectionCamera.cs
- ByteAnimationUsingKeyFrames.cs
- ThousandthOfEmRealPoints.cs
- CoTaskMemSafeHandle.cs
- AppSettingsExpressionBuilder.cs
- PaperSize.cs
- HashStream.cs
- SrgsGrammar.cs
- HttpGetClientProtocol.cs
- TransformedBitmap.cs
- StringStorage.cs
- ScriptDescriptor.cs
- SelectedGridItemChangedEvent.cs
- PeerResolverElement.cs
- GenericEnumConverter.cs
- CachedRequestParams.cs
- Certificate.cs
- Attributes.cs
- SmtpFailedRecipientException.cs
- EntityParameterCollection.cs
- CaretElement.cs
- DataSet.cs
- ColumnClickEvent.cs
- DbException.cs
- Triplet.cs
- AppModelKnownContentFactory.cs
- GridItemProviderWrapper.cs
- DotExpr.cs
- Guid.cs
- ByteAnimation.cs
- PageCache.cs
- WindowsPrincipal.cs
- RegularExpressionValidator.cs
- ChildTable.cs
- WindowManager.cs
- GridViewDeleteEventArgs.cs
- PopupRootAutomationPeer.cs
- Rect3D.cs
- ToolTip.cs
- SafeFileMapViewHandle.cs
- UnionExpr.cs