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
- AtomPub10ServiceDocumentFormatter.cs
- VectorAnimationBase.cs
- SequenceFullException.cs
- CodeCompiler.cs
- FunctionQuery.cs
- ApplicationId.cs
- EventLogEntryCollection.cs
- BamlBinaryWriter.cs
- BitConverter.cs
- MetadataArtifactLoaderComposite.cs
- TemplatePagerField.cs
- OperatingSystem.cs
- WizardForm.cs
- LinqDataSource.cs
- ObjectContext.cs
- TemplatePropertyEntry.cs
- PageAdapter.cs
- ComboBoxAutomationPeer.cs
- SeparatorAutomationPeer.cs
- MemberPathMap.cs
- SemaphoreSecurity.cs
- KeyEventArgs.cs
- ConnectionPointCookie.cs
- Serializer.cs
- DynamicDiscoveryDocument.cs
- HtmlButton.cs
- TimerEventSubscription.cs
- SystemException.cs
- XmlEntity.cs
- ResourceCategoryAttribute.cs
- ClientTarget.cs
- NotifyIcon.cs
- MimeTextImporter.cs
- GetChildSubtree.cs
- Duration.cs
- DelegatedStream.cs
- ControlIdConverter.cs
- SourceFileBuildProvider.cs
- Menu.cs
- UnsafeNativeMethods.cs
- ThreadExceptionDialog.cs
- NotImplementedException.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- BasicExpressionVisitor.cs
- SqlDataSourceCommandEventArgs.cs
- TypeToken.cs
- TextInfo.cs
- InternalControlCollection.cs
- RecipientIdentity.cs
- localization.cs
- AxisAngleRotation3D.cs
- UIHelper.cs
- FormsAuthenticationCredentials.cs
- XmlBoundElement.cs
- CodeArrayIndexerExpression.cs
- FamilyCollection.cs
- RadialGradientBrush.cs
- FrameworkPropertyMetadata.cs
- ContextBase.cs
- TreeNodeStyleCollection.cs
- Converter.cs
- AbsoluteQuery.cs
- SharedStatics.cs
- HttpListenerRequest.cs
- ContainerActivationHelper.cs
- StatusBar.cs
- CryptoConfig.cs
- DataGridViewLinkCell.cs
- ServiceDescriptionReflector.cs
- XmlDownloadManager.cs
- EmptyStringExpandableObjectConverter.cs
- CacheModeConverter.cs
- ContextMenuStrip.cs
- StreamUpdate.cs
- CursorEditor.cs
- TraceUtils.cs
- XmlElementCollection.cs
- SeekStoryboard.cs
- CompiledELinqQueryState.cs
- JoinTreeSlot.cs
- XmlDocumentSerializer.cs
- BinaryConverter.cs
- MissingMethodException.cs
- ReadingWritingEntityEventArgs.cs
- SchemaCollectionPreprocessor.cs
- ClientRuntimeConfig.cs
- Roles.cs
- KerberosSecurityTokenParameters.cs
- Dump.cs
- QueryContinueDragEventArgs.cs
- CleanUpVirtualizedItemEventArgs.cs
- Axis.cs
- ProfilePropertySettings.cs
- WebEventTraceProvider.cs
- PassportAuthentication.cs
- GridViewDeletedEventArgs.cs
- ExtendedPropertiesHandler.cs
- XmlParser.cs
- PreservationFileWriter.cs
- CharUnicodeInfo.cs