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
- SqlDataSourceConfigureSortForm.cs
- LockedHandleGlyph.cs
- FrameAutomationPeer.cs
- WhitespaceRule.cs
- ISAPIWorkerRequest.cs
- FontSource.cs
- TokenizerHelper.cs
- NullExtension.cs
- InkCanvas.cs
- QueryOpcode.cs
- FtpWebRequest.cs
- DecoratedNameAttribute.cs
- WebDescriptionAttribute.cs
- ReadWriteSpinLock.cs
- PassportAuthenticationModule.cs
- OLEDB_Util.cs
- ApplicationServicesHostFactory.cs
- RouteParametersHelper.cs
- AccessKeyManager.cs
- BrowserInteropHelper.cs
- cookiecontainer.cs
- Expressions.cs
- WebPartManager.cs
- Polyline.cs
- QueryStringHandler.cs
- recordstatefactory.cs
- EditingMode.cs
- MultiBinding.cs
- DataRowComparer.cs
- SqlDelegatedTransaction.cs
- TranslateTransform3D.cs
- CollectionBase.cs
- AspNetSynchronizationContext.cs
- Facet.cs
- XslAst.cs
- Adorner.cs
- IdleTimeoutMonitor.cs
- Queue.cs
- CssTextWriter.cs
- FormViewDeletedEventArgs.cs
- SimpleWorkerRequest.cs
- ContainerCodeDomSerializer.cs
- MatrixUtil.cs
- NameTable.cs
- SizeChangedEventArgs.cs
- SimpleHandlerFactory.cs
- QueryMath.cs
- XmlValidatingReaderImpl.cs
- HexParser.cs
- InfiniteTimeSpanConverter.cs
- ShellProvider.cs
- GlyphsSerializer.cs
- IconConverter.cs
- UiaCoreApi.cs
- LocalBuilder.cs
- RawStylusInput.cs
- ValueChangedEventManager.cs
- EndPoint.cs
- ProfileManager.cs
- WorkflowRuntimeService.cs
- DateBoldEvent.cs
- OledbConnectionStringbuilder.cs
- XmlSchemaValidator.cs
- OleDbCommand.cs
- RealizationContext.cs
- Translator.cs
- HttpConfigurationContext.cs
- XamlSerializerUtil.cs
- ComPlusAuthorization.cs
- TagPrefixInfo.cs
- CompilationRelaxations.cs
- LeaseManager.cs
- util.cs
- MetadataItemEmitter.cs
- ComponentResourceKeyConverter.cs
- RowType.cs
- followingsibling.cs
- ServiceTimeoutsElement.cs
- ToolZone.cs
- TextAutomationPeer.cs
- XmlSerializerFactory.cs
- BufferedStream.cs
- ElementProxy.cs
- WindowsSysHeader.cs
- RawStylusInputCustomDataList.cs
- CacheDependency.cs
- ContextMenu.cs
- SafeEventLogReadHandle.cs
- XmlSchemaNotation.cs
- DbDataAdapter.cs
- ConfigurationManagerInternalFactory.cs
- XmlReflectionImporter.cs
- dsa.cs
- OdbcUtils.cs
- HtmlInputHidden.cs
- UnsafeMethods.cs
- TextDecorationLocationValidation.cs
- cookiecontainer.cs
- PaintValueEventArgs.cs
- HtmlInputSubmit.cs