Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / Utils / PLINQETWProvider.cs / 1305376 / PLINQETWProvider.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // PlinqEtwProvider.cs // //[....] // // A helper class for firing ETW events related to PLINQ APIs // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Diagnostics.Eventing; namespace System.Linq.Parallel { #if !FEATURE_PAL // PAL doesn't support eventing sealed internal class PlinqEtwProvider : EventProviderBase { // // Defines the singleton instance for the PLINQ ETW provider // // The PLINQ Event provider GUID is {159eeeec-4a14-4418-a8fe-faabcd987887} // public static PlinqEtwProvider Log = new PlinqEtwProvider(); private PlinqEtwProvider() : base(new Guid(0x159eeeec, 0x4a14, 0x4418, 0xa8, 0xfe, 0xfa, 0xab, 0xcd, 0x98, 0x78, 0x87)) { } internal static int s_queryId = 0; //static counter used to generate unique IDs ////// Generates the next consecutive query ID /// internal static int NextQueryId() { return Interlocked.Increment(ref s_queryId); } //------------------------------------------------------------------------------------ // // PLINQ Query Execution Events // // ParallelQueryBegin denotes the entry point for a PLINQ Query, and declares the fork/join context ID // which will be shared by subsequent events fired by tasks that service this query internal void ParallelQueryBegin(int queryId) { if (IsEnabled()) { int taskId = Task.CurrentId ?? 0; WriteEvent(1, 0, taskId, queryId); } } // ParallelQueryBegin denotes the end of PLINQ Query which was declared previously with the same // fork/join context ID. internal void ParallelQueryEnd(int queryId) { if (IsEnabled()) { int taskId = Task.CurrentId ?? 0; WriteEvent(2, 0, taskId, queryId); } } // ParallelQueryFork event denotes the start of an individual task that will service a parallel query. // Before this event is fired, the fork/join context must have been declared with a // ParallelQueryBegin event. internal void ParallelQueryFork(int queryId) { if (IsEnabled()) { int taskId = Task.CurrentId ?? 0; if (IsEnabled()) WriteEvent(3, 0, taskId, queryId); } } // ParallelQueryFork event denotes the end of an individual task that serviced a parallel query. // This should match a previous ParallelFork event with a matching "OriginatingTaskID" internal void ParallelQueryJoin(int queryId) { if (IsEnabled()) { int taskId = Task.CurrentId ?? 0; WriteEvent(4, 0, taskId, queryId); } } } #endif // !FEATURE_PAL } // 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
- LogRestartAreaEnumerator.cs
- safex509handles.cs
- GeometryHitTestResult.cs
- InkPresenter.cs
- SqlDataReaderSmi.cs
- OrthographicCamera.cs
- AuthenticationSection.cs
- DataGridViewRowHeaderCell.cs
- XPathAncestorIterator.cs
- SqlSupersetValidator.cs
- XamlSerializationHelper.cs
- ConstantCheck.cs
- XmlSchemaImporter.cs
- WebConvert.cs
- filewebrequest.cs
- TraceRecords.cs
- ProtocolsConfiguration.cs
- DrawingGroupDrawingContext.cs
- BezierSegment.cs
- SafeEventLogWriteHandle.cs
- Tile.cs
- WMICapabilities.cs
- EdgeProfileValidation.cs
- Focus.cs
- SimpleFileLog.cs
- SafeArrayRankMismatchException.cs
- Style.cs
- GraphicsState.cs
- HandledEventArgs.cs
- ReadOnlyHierarchicalDataSource.cs
- ClientUtils.cs
- XamlInterfaces.cs
- FormattedText.cs
- Viewport3DVisual.cs
- TraceContextRecord.cs
- pingexception.cs
- InvokeFunc.cs
- RolePrincipal.cs
- XmlHierarchicalDataSourceView.cs
- MenuItem.cs
- SendMailErrorEventArgs.cs
- sapiproxy.cs
- Positioning.cs
- WebPartTransformer.cs
- CommandConverter.cs
- Header.cs
- PresentationSource.cs
- ArcSegment.cs
- ToolStripPanelRenderEventArgs.cs
- EntityUtil.cs
- SqlConnectionPoolProviderInfo.cs
- TreeBuilderXamlTranslator.cs
- FixedSOMLineCollection.cs
- ProtocolInformationReader.cs
- TextBreakpoint.cs
- JoinTreeSlot.cs
- FixedElement.cs
- FontSizeConverter.cs
- GeneralTransform3D.cs
- UriParserTemplates.cs
- WebPartMovingEventArgs.cs
- ParagraphVisual.cs
- TabletCollection.cs
- ToolboxItemLoader.cs
- ResourceIDHelper.cs
- Decimal.cs
- SubMenuStyleCollectionEditor.cs
- IDReferencePropertyAttribute.cs
- DetailsViewDeletedEventArgs.cs
- ValidationResult.cs
- ViewManager.cs
- IdlingCommunicationPool.cs
- StrongNamePublicKeyBlob.cs
- TableLayoutRowStyleCollection.cs
- Int32Converter.cs
- EnumMember.cs
- IndexedGlyphRun.cs
- ProgressBarHighlightConverter.cs
- FormatStringEditor.cs
- PreservationFileReader.cs
- GcHandle.cs
- ResourceSetExpression.cs
- EnumerationRangeValidationUtil.cs
- ClassHandlersStore.cs
- DataTableNameHandler.cs
- BaseProcessProtocolHandler.cs
- CacheRequest.cs
- XmlTypeAttribute.cs
- EditingCoordinator.cs
- RIPEMD160.cs
- MultiPageTextView.cs
- QueryResult.cs
- MonthChangedEventArgs.cs
- DrawingDrawingContext.cs
- AuthenticationModuleElementCollection.cs
- TemplateParser.cs
- LabelEditEvent.cs
- PassportIdentity.cs
- CodeArrayIndexerExpression.cs
- CounterSetInstance.cs