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
- Cursors.cs
- _HelperAsyncResults.cs
- XMLSyntaxException.cs
- WebPartConnectionsCloseVerb.cs
- NegotiateStream.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- Size.cs
- FunctionDetailsReader.cs
- ModuleBuilderData.cs
- Error.cs
- ServicePointManager.cs
- TableCellCollection.cs
- HttpModuleCollection.cs
- TypedDataSetSchemaImporterExtension.cs
- OracleColumn.cs
- OrderedEnumerableRowCollection.cs
- ViewStateModeByIdAttribute.cs
- AddressHeaderCollectionElement.cs
- XmlReaderSettings.cs
- PenThread.cs
- AnnotationResourceCollection.cs
- Util.cs
- ContainerCodeDomSerializer.cs
- ContainerUtilities.cs
- XmlTextReaderImplHelpers.cs
- SelectorAutomationPeer.cs
- WebFaultException.cs
- TabItemWrapperAutomationPeer.cs
- TemplateColumn.cs
- PixelShader.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- XmlMtomReader.cs
- WebHttpBinding.cs
- NodeCounter.cs
- LicFileLicenseProvider.cs
- GridViewPageEventArgs.cs
- AsyncStreamReader.cs
- SafeCryptContextHandle.cs
- HttpCacheVaryByContentEncodings.cs
- NativeWindow.cs
- RunClient.cs
- SafeLocalAllocation.cs
- ScriptIgnoreAttribute.cs
- DelegateArgumentReference.cs
- DataGridColumnsPage.cs
- BehaviorEditorPart.cs
- EncryptedReference.cs
- DrawingContextDrawingContextWalker.cs
- TextControl.cs
- XmlEntity.cs
- SupportingTokenSecurityTokenResolver.cs
- ObservableDictionary.cs
- GPRECT.cs
- PolicyValidator.cs
- ParameterCollection.cs
- CharacterString.cs
- Visual.cs
- FileLoadException.cs
- List.cs
- Span.cs
- ColumnWidthChangingEvent.cs
- Parser.cs
- Operator.cs
- MenuAutomationPeer.cs
- Binding.cs
- Exceptions.cs
- FormViewUpdatedEventArgs.cs
- DynamicQueryableWrapper.cs
- DependencyProperty.cs
- XmlIgnoreAttribute.cs
- SoapEnumAttribute.cs
- ProofTokenCryptoHandle.cs
- JavascriptXmlWriterWrapper.cs
- InternalUserCancelledException.cs
- TimeStampChecker.cs
- ViewStateModeByIdAttribute.cs
- SafeFileMappingHandle.cs
- SendActivityDesigner.cs
- NamedPipeHostedTransportConfiguration.cs
- DodSequenceMerge.cs
- RepeatButtonAutomationPeer.cs
- PageBreakRecord.cs
- BamlVersionHeader.cs
- XsltCompileContext.cs
- Wildcard.cs
- NavigatorInput.cs
- BrowserCapabilitiesFactory.cs
- LayoutTableCell.cs
- XPathSelectionIterator.cs
- SamlSubject.cs
- SlotInfo.cs
- WSMessageEncoding.cs
- MethodBuilderInstantiation.cs
- DigitShape.cs
- OracleCommandSet.cs
- TransformValueSerializer.cs
- XmlSchemaCompilationSettings.cs
- Style.cs
- FieldBuilder.cs
- InputScopeConverter.cs