Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / Merging / MergeEnumerator.cs / 1305376 / MergeEnumerator.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // MergeEnumerator.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Collections; using System.Collections.Generic; using System.Diagnostics.Contracts; namespace System.Linq.Parallel { ////// Convenience class used by enumerators that merge many partitions into one. /// ///internal abstract class MergeEnumerator : IEnumerator { protected QueryTaskGroupState m_taskGroupState; //------------------------------------------------------------------------------------ // Initializes a new enumerator with the specified group state. // protected MergeEnumerator(QueryTaskGroupState taskGroupState) { Contract.Assert(taskGroupState != null); m_taskGroupState = taskGroupState; } //----------------------------------------------------------------------------------- // Abstract members of IEnumerator that must be implemented by concrete subclasses. // public abstract TInputOutput Current { get; } public abstract bool MoveNext(); //----------------------------------------------------------------------------------- // Straightforward IEnumerator methods. So subclasses needn't bother. // object IEnumerator.Current { get { return ((IEnumerator )this).Current; } } public virtual void Reset() { // (intentionally left blank) } //----------------------------------------------------------------------------------- // If the enumerator is disposed of before the query finishes, we need to ensure // we properly tear down the query such that exceptions are not lost. // public virtual void Dispose() { // If the enumerator is being disposed of before the query has finished, // we will wait for the query to finish. Cancellation should have already // been initiated, so we just need to ensure exceptions are propagated. if (!m_taskGroupState.IsAlreadyEnded) { Contract.Assert(m_taskGroupState.CancellationState.TopLevelDisposedFlag.Value); m_taskGroupState.QueryEnd(true); } } } } // 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
- RewritingPass.cs
- EventManager.cs
- GlyphRunDrawing.cs
- AutomationProperty.cs
- TextStore.cs
- DesigntimeLicenseContextSerializer.cs
- ProxyAttribute.cs
- DiscoveryDocumentSearchPattern.cs
- Main.cs
- RegisteredHiddenField.cs
- PersonalizableTypeEntry.cs
- XmlBindingWorker.cs
- SortKey.cs
- SqlConnectionPoolGroupProviderInfo.cs
- UnmanagedMemoryStreamWrapper.cs
- PasswordDeriveBytes.cs
- QueryStatement.cs
- Ref.cs
- SqlDependencyUtils.cs
- NativeMethods.cs
- AutoScrollExpandMessageFilter.cs
- TemplatedMailWebEventProvider.cs
- ProfessionalColorTable.cs
- OneOfScalarConst.cs
- CompiledQuery.cs
- NumericExpr.cs
- HuffmanTree.cs
- SerTrace.cs
- XPathAncestorQuery.cs
- Panel.cs
- basecomparevalidator.cs
- BamlLocalizableResource.cs
- DesigntimeLicenseContextSerializer.cs
- PartialTrustVisibleAssembliesSection.cs
- EventListener.cs
- SerializationEventsCache.cs
- PresentationSource.cs
- Drawing.cs
- DockPattern.cs
- NameTable.cs
- TreeBuilder.cs
- TextServicesProperty.cs
- EnumMemberAttribute.cs
- BindingSource.cs
- SpecialNameAttribute.cs
- RoutedEventValueSerializer.cs
- WebPartManagerInternals.cs
- AxHost.cs
- SrgsGrammarCompiler.cs
- HttpModuleAction.cs
- Exceptions.cs
- HtmlUtf8RawTextWriter.cs
- PromptBuilder.cs
- DefaultValueConverter.cs
- Expression.cs
- XComponentModel.cs
- SetterBaseCollection.cs
- CharacterBufferReference.cs
- RectangleF.cs
- Int32EqualityComparer.cs
- ToolStripGrip.cs
- AppDomainCompilerProxy.cs
- KeysConverter.cs
- TrustLevel.cs
- RemotingException.cs
- CodeArrayCreateExpression.cs
- SafeBitVector32.cs
- parserscommon.cs
- EtwTrackingParticipant.cs
- RequestCacheEntry.cs
- EdmPropertyAttribute.cs
- ScrollData.cs
- DirectoryNotFoundException.cs
- FloaterBaseParagraph.cs
- InnerItemCollectionView.cs
- LinkClickEvent.cs
- ISCIIEncoding.cs
- SimpleLine.cs
- DataGridCellEditEndingEventArgs.cs
- ExpressionDumper.cs
- XmlSchemaDocumentation.cs
- StylusPointPropertyInfo.cs
- SectionVisual.cs
- PersonalizationStateInfo.cs
- SiteMapNodeItem.cs
- PeerChannelFactory.cs
- LayoutManager.cs
- WebPartConnectionsConfigureVerb.cs
- TogglePattern.cs
- ManagementObjectCollection.cs
- QuaternionKeyFrameCollection.cs
- InvalidAsynchronousStateException.cs
- EdmProperty.cs
- XpsDocument.cs
- FontStretchConverter.cs
- HttpClientProtocol.cs
- DataGridViewBindingCompleteEventArgs.cs
- SQLDateTime.cs
- HttpApplicationFactory.cs
- HtmlInputFile.cs