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
- SettingsSavedEventArgs.cs
- StateMachine.cs
- TagMapInfo.cs
- ApplicationHost.cs
- DesignerUtility.cs
- PackagingUtilities.cs
- invalidudtexception.cs
- TypefaceMetricsCache.cs
- IPAddress.cs
- CodeDesigner.cs
- KeyConstraint.cs
- DataSetUtil.cs
- HttpRawResponse.cs
- BamlResourceDeserializer.cs
- DataGridViewDataErrorEventArgs.cs
- UrlAuthFailedErrorFormatter.cs
- SourceFileBuildProvider.cs
- StringWriter.cs
- CheckoutException.cs
- DockPattern.cs
- EncryptedPackageFilter.cs
- XmlUrlEditor.cs
- GradientSpreadMethodValidation.cs
- Baml2006KeyRecord.cs
- SharedDp.cs
- _FtpDataStream.cs
- ResourceDefaultValueAttribute.cs
- SafeEventHandle.cs
- ThumbAutomationPeer.cs
- LinqDataSourceDisposeEventArgs.cs
- BasicAsyncResult.cs
- PerformanceCounter.cs
- Shape.cs
- HitTestWithGeometryDrawingContextWalker.cs
- NetStream.cs
- DrawItemEvent.cs
- RelationshipWrapper.cs
- KeyValueInternalCollection.cs
- XmlHierarchicalEnumerable.cs
- GridEntryCollection.cs
- URI.cs
- InputBinding.cs
- DefaultMemberAttribute.cs
- BaseTemplateBuildProvider.cs
- XpsStructure.cs
- StateFinalizationDesigner.cs
- Point4D.cs
- SQLDateTime.cs
- CompositeFontFamily.cs
- Timer.cs
- AssociatedControlConverter.cs
- XmlIlVisitor.cs
- DataKey.cs
- Shared.cs
- XPSSignatureDefinition.cs
- DataGridViewCellStyleChangedEventArgs.cs
- EntityDataSourceUtil.cs
- ExpanderAutomationPeer.cs
- Pool.cs
- ResourceWriter.cs
- TemplateBindingExpressionConverter.cs
- WsdlInspector.cs
- NameTable.cs
- QilBinary.cs
- CompiledXpathExpr.cs
- RichTextBox.cs
- FrameworkElementAutomationPeer.cs
- RenderDataDrawingContext.cs
- DataPagerFieldCommandEventArgs.cs
- TemplateInstanceAttribute.cs
- TypeGeneratedEventArgs.cs
- GradientStop.cs
- GraphicsContext.cs
- CustomAttributeSerializer.cs
- XmlElement.cs
- XNodeValidator.cs
- FontFamilyConverter.cs
- PowerEase.cs
- FontConverter.cs
- SafeFileMapViewHandle.cs
- Lock.cs
- TextServicesLoader.cs
- MeasureItemEvent.cs
- RawStylusInputCustomDataList.cs
- Operand.cs
- RoleGroupCollection.cs
- AggregatePushdown.cs
- StringAnimationBase.cs
- DesignerActionTextItem.cs
- Timer.cs
- PartitionResolver.cs
- RegexGroupCollection.cs
- XmlSchemaProviderAttribute.cs
- IMembershipProvider.cs
- XmlLanguageConverter.cs
- DataServices.cs
- CaretElement.cs
- DescendantQuery.cs
- DateTimeValueSerializerContext.cs
- CustomDictionarySources.cs