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
- ObjectSpanRewriter.cs
- DllNotFoundException.cs
- UpdatePanel.cs
- InvokePattern.cs
- _NegotiateClient.cs
- IntPtr.cs
- MergeFailedEvent.cs
- DbParameterCollectionHelper.cs
- GB18030Encoding.cs
- MethodExpr.cs
- XslAstAnalyzer.cs
- Type.cs
- TextModifier.cs
- PersonalizationDictionary.cs
- webeventbuffer.cs
- DesignerForm.cs
- CompoundFileIOPermission.cs
- VirtualPathData.cs
- InvokeMemberBinder.cs
- securestring.cs
- StorageComplexPropertyMapping.cs
- ObjectDataSourceDisposingEventArgs.cs
- ParseNumbers.cs
- SizeFConverter.cs
- WebPartVerbsEventArgs.cs
- ExtractorMetadata.cs
- GlyphCache.cs
- CompiledELinqQueryState.cs
- DbConnectionPoolGroupProviderInfo.cs
- RemoteDebugger.cs
- TextServicesHost.cs
- ToolStripItemEventArgs.cs
- XmlSchemaSimpleContentExtension.cs
- SchemaImporter.cs
- WindowsEditBoxRange.cs
- ConnectionStringsExpressionBuilder.cs
- RadioButtonBaseAdapter.cs
- ExpressionWriter.cs
- FeatureSupport.cs
- UICuesEvent.cs
- SelectorAutomationPeer.cs
- ResolveMatches11.cs
- Icon.cs
- ButtonBaseAdapter.cs
- CodeConstructor.cs
- RadioButtonFlatAdapter.cs
- FactoryGenerator.cs
- CodeNamespaceImport.cs
- ComponentResourceManager.cs
- SrgsDocumentParser.cs
- ItemCheckEvent.cs
- SecondaryIndexList.cs
- MethodBuilderInstantiation.cs
- BitmapEffectRenderDataResource.cs
- SafeEventLogReadHandle.cs
- SqlRetyper.cs
- sqlstateclientmanager.cs
- SystemInfo.cs
- IncomingWebResponseContext.cs
- TransformerConfigurationWizardBase.cs
- ByteStreamMessageUtility.cs
- EventSource.cs
- BoundField.cs
- RetrieveVirtualItemEventArgs.cs
- ConfigXmlElement.cs
- Context.cs
- NameValueConfigurationElement.cs
- LogLogRecordEnumerator.cs
- SerTrace.cs
- IsolatedStorageFileStream.cs
- XPathExpr.cs
- ElementNotEnabledException.cs
- QilInvokeLateBound.cs
- NameObjectCollectionBase.cs
- CharacterHit.cs
- TranslateTransform3D.cs
- XmlLoader.cs
- ClientProxyGenerator.cs
- Timer.cs
- ElementAction.cs
- CodeMethodReturnStatement.cs
- BinaryNode.cs
- UntypedNullExpression.cs
- WorkflowServiceHost.cs
- MembershipSection.cs
- DynamicPropertyReader.cs
- DesignerActionUIService.cs
- HttpRequest.cs
- ObjectPersistData.cs
- SettingsPropertyCollection.cs
- MTConfigUtil.cs
- ArgumentFixer.cs
- Vars.cs
- TaiwanLunisolarCalendar.cs
- SymbolUsageManager.cs
- ImageSource.cs
- RSAPKCS1SignatureDeformatter.cs
- JsonSerializer.cs
- Ticks.cs
- ToolStripDropDownMenu.cs