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
- DataKey.cs
- TextParaLineResult.cs
- SafeFileMappingHandle.cs
- OleDbEnumerator.cs
- SafeNativeMethods.cs
- Attributes.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- AsyncCompletedEventArgs.cs
- XamlClipboardData.cs
- Image.cs
- Compiler.cs
- XmlIterators.cs
- ListItemCollection.cs
- SqlWebEventProvider.cs
- BitmapEffectGroup.cs
- LinearKeyFrames.cs
- unsafenativemethodstextservices.cs
- cache.cs
- RegistrationServices.cs
- ParameterModifier.cs
- XmlSortKeyAccumulator.cs
- IncrementalReadDecoders.cs
- DetailsViewCommandEventArgs.cs
- FlowPosition.cs
- translator.cs
- WebPartManagerInternals.cs
- OleServicesContext.cs
- XpsThumbnail.cs
- ColumnReorderedEventArgs.cs
- HtmlElementErrorEventArgs.cs
- XmlSchemaValidator.cs
- VersionConverter.cs
- _Semaphore.cs
- VariableDesigner.xaml.cs
- XmlSchemaSimpleContentRestriction.cs
- SqlXmlStorage.cs
- ExpressionSelection.cs
- RectangleHotSpot.cs
- XmlDomTextWriter.cs
- InstanceDescriptor.cs
- Publisher.cs
- FlowDecisionDesigner.xaml.cs
- TimestampInformation.cs
- EventProxy.cs
- FaultContractAttribute.cs
- ContractReference.cs
- RelationshipEnd.cs
- ColorDialog.cs
- WebMessageBodyStyleHelper.cs
- ConsumerConnectionPoint.cs
- SqlMethodAttribute.cs
- ObjectStateEntryDbDataRecord.cs
- DataDesignUtil.cs
- TextTreeTextBlock.cs
- WebMethodAttribute.cs
- shaper.cs
- TypeElement.cs
- CaseInsensitiveOrdinalStringComparer.cs
- SQLInt64.cs
- StreamAsIStream.cs
- ValuePatternIdentifiers.cs
- RecognizerBase.cs
- AspCompat.cs
- DateTimeConstantAttribute.cs
- WorkflowRuntimeEndpoint.cs
- CalendarDay.cs
- XmlAttributeProperties.cs
- DbConnectionInternal.cs
- XmlSchemaComplexType.cs
- PasswordPropertyTextAttribute.cs
- LabelLiteral.cs
- BrowserCapabilitiesCodeGenerator.cs
- DataGridView.cs
- HttpAsyncResult.cs
- ConvertTextFrag.cs
- Margins.cs
- PowerEase.cs
- ColorConvertedBitmapExtension.cs
- Compress.cs
- PerfCounters.cs
- Listbox.cs
- WebConvert.cs
- JournalEntryListConverter.cs
- FileDialog.cs
- InstanceHandleReference.cs
- ReachFixedPageSerializerAsync.cs
- XmlQueryTypeFactory.cs
- ObjectDataSourceEventArgs.cs
- ListBoxItemAutomationPeer.cs
- ProfileSettings.cs
- IntSecurity.cs
- _LocalDataStore.cs
- XmlObjectSerializerWriteContext.cs
- TextServicesProperty.cs
- ProtocolImporter.cs
- QilUnary.cs
- XmlSiteMapProvider.cs
- TerminatingOperationBehavior.cs
- HttpContext.cs
- PasswordTextContainer.cs