Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / QueryOperators / PartitionedStreamMerger.cs / 1305376 / PartitionedStreamMerger.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // PartitionedStreamMerger.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Threading.Tasks; using System.Diagnostics.Contracts; namespace System.Linq.Parallel { ////// Partitioned stream recipient that will merge the results. /// internal class PartitionedStreamMerger: IPartitionedStreamRecipient { private bool m_forEffectMerge; private ParallelMergeOptions m_mergeOptions; private bool m_isOrdered; private MergeExecutor m_mergeExecutor = null; private TaskScheduler m_taskScheduler; private int m_queryId; // ID of the current query execution private CancellationState m_cancellationState; #if DEBUG private bool m_received = false; #endif // Returns the merge executor which merges the received partitioned stream. internal MergeExecutor MergeExecutor { get { #if DEBUG Contract.Assert(m_received, "Cannot return the merge executor because Receive() has not been called yet."); #endif return m_mergeExecutor; } } internal PartitionedStreamMerger(bool forEffectMerge, ParallelMergeOptions mergeOptions, TaskScheduler taskScheduler, bool outputOrdered, CancellationState cancellationState, int queryId) { m_forEffectMerge = forEffectMerge; m_mergeOptions = mergeOptions; m_isOrdered = outputOrdered; m_taskScheduler = taskScheduler; m_cancellationState = cancellationState; m_queryId = queryId; } public void Receive (PartitionedStream partitionedStream) { #if DEBUG m_received = true; #endif m_mergeExecutor = MergeExecutor .Execute ( partitionedStream, m_forEffectMerge, m_mergeOptions, m_taskScheduler, m_isOrdered, m_cancellationState, m_queryId); TraceHelpers.TraceInfo("[timing]: {0}: finished opening - QueryOperator<>::GetEnumerator", DateTime.Now.Ticks); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // PartitionedStreamMerger.cs // // [....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Threading.Tasks; using System.Diagnostics.Contracts; namespace System.Linq.Parallel { ////// Partitioned stream recipient that will merge the results. /// internal class PartitionedStreamMerger: IPartitionedStreamRecipient { private bool m_forEffectMerge; private ParallelMergeOptions m_mergeOptions; private bool m_isOrdered; private MergeExecutor m_mergeExecutor = null; private TaskScheduler m_taskScheduler; private int m_queryId; // ID of the current query execution private CancellationState m_cancellationState; #if DEBUG private bool m_received = false; #endif // Returns the merge executor which merges the received partitioned stream. internal MergeExecutor MergeExecutor { get { #if DEBUG Contract.Assert(m_received, "Cannot return the merge executor because Receive() has not been called yet."); #endif return m_mergeExecutor; } } internal PartitionedStreamMerger(bool forEffectMerge, ParallelMergeOptions mergeOptions, TaskScheduler taskScheduler, bool outputOrdered, CancellationState cancellationState, int queryId) { m_forEffectMerge = forEffectMerge; m_mergeOptions = mergeOptions; m_isOrdered = outputOrdered; m_taskScheduler = taskScheduler; m_cancellationState = cancellationState; m_queryId = queryId; } public void Receive (PartitionedStream partitionedStream) { #if DEBUG m_received = true; #endif m_mergeExecutor = MergeExecutor .Execute ( partitionedStream, m_forEffectMerge, m_mergeOptions, m_taskScheduler, m_isOrdered, m_cancellationState, m_queryId); TraceHelpers.TraceInfo("[timing]: {0}: finished opening - QueryOperator<>::GetEnumerator", DateTime.Now.Ticks); } } } // 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
- DesignerVerb.cs
- brushes.cs
- XhtmlTextWriter.cs
- WebReferenceOptions.cs
- PageAdapter.cs
- ResourceLoader.cs
- BinaryParser.cs
- HashCodeCombiner.cs
- ToolStripPanelSelectionGlyph.cs
- AxHostDesigner.cs
- IgnoreSectionHandler.cs
- UserControl.cs
- SafeNativeMemoryHandle.cs
- SQLRoleProvider.cs
- sitestring.cs
- XmlTextReaderImpl.cs
- CategoryEditor.cs
- XmlText.cs
- ImmutableObjectAttribute.cs
- ArrangedElement.cs
- MappingException.cs
- _SingleItemRequestCache.cs
- listitem.cs
- DesignerActionGlyph.cs
- DoubleStorage.cs
- OleDbException.cs
- ScrollViewerAutomationPeer.cs
- ResourceKey.cs
- LinqDataSourceView.cs
- PolyBezierSegment.cs
- HttpModuleCollection.cs
- Emitter.cs
- GatewayIPAddressInformationCollection.cs
- NCryptSafeHandles.cs
- RuntimeCompatibilityAttribute.cs
- Win32SafeHandles.cs
- ContentPresenter.cs
- ObjectDataSourceFilteringEventArgs.cs
- DataProtection.cs
- QueryAsyncResult.cs
- ClickablePoint.cs
- StrokeCollection2.cs
- WebControlsSection.cs
- IBuiltInEvidence.cs
- FormatConvertedBitmap.cs
- LayoutEngine.cs
- SQLConvert.cs
- AdapterUtil.cs
- safemediahandle.cs
- LineGeometry.cs
- SapiAttributeParser.cs
- SizeAnimationClockResource.cs
- CollectionChangedEventManager.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- BoundField.cs
- AnnotationComponentManager.cs
- Win32MouseDevice.cs
- SmiMetaData.cs
- _HeaderInfo.cs
- ButtonRenderer.cs
- XmlNamedNodeMap.cs
- HttpCachePolicyWrapper.cs
- XmlDataCollection.cs
- SqlUtils.cs
- TdsParserHelperClasses.cs
- EmptyEnumerator.cs
- VerticalAlignConverter.cs
- ErrorRuntimeConfig.cs
- TextTrailingWordEllipsis.cs
- SamlSerializer.cs
- EndpointIdentityExtension.cs
- DesignRelationCollection.cs
- ConnectionPoint.cs
- CompositeScriptReference.cs
- ConsumerConnectionPoint.cs
- SourceFileInfo.cs
- HotCommands.cs
- EntityTypeBase.cs
- ObjectStateManager.cs
- SchemaTableColumn.cs
- UriTemplateCompoundPathSegment.cs
- TableAdapterManagerGenerator.cs
- LocationUpdates.cs
- NumberFunctions.cs
- TreeViewImageKeyConverter.cs
- ReadContentAsBinaryHelper.cs
- MethodBuilder.cs
- ContextBase.cs
- RoutedEventConverter.cs
- CodeDefaultValueExpression.cs
- EditingCommands.cs
- SqlDataSourceStatusEventArgs.cs
- XmlSerializerFormatAttribute.cs
- XmlCharCheckingReader.cs
- ScrollChrome.cs
- Int32AnimationBase.cs
- FileDetails.cs
- TableRowGroup.cs
- ReadOnlyTernaryTree.cs
- control.ime.cs