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
- UrlMappingsSection.cs
- TabRenderer.cs
- HtmlForm.cs
- MatrixCamera.cs
- ListViewInsertionMark.cs
- xmlsaver.cs
- Column.cs
- codemethodreferenceexpression.cs
- PropertyContainer.cs
- SessionParameter.cs
- DbConnectionPoolCounters.cs
- XmlComplianceUtil.cs
- ValueQuery.cs
- LinqDataView.cs
- PackagePartCollection.cs
- BoundField.cs
- AdornerLayer.cs
- XamlStyleSerializer.cs
- DataGridItemEventArgs.cs
- RequestCache.cs
- UndirectedGraph.cs
- NativeConfigurationLoader.cs
- FlowNode.cs
- Control.cs
- ListViewSelectEventArgs.cs
- Walker.cs
- ObjectStorage.cs
- Unit.cs
- Transactions.cs
- ListViewItemSelectionChangedEvent.cs
- FileUpload.cs
- HttpHandlerActionCollection.cs
- DataListAutoFormat.cs
- ISAPIWorkerRequest.cs
- ConditionalWeakTable.cs
- DockProviderWrapper.cs
- DbDeleteCommandTree.cs
- SmtpSection.cs
- SafePointer.cs
- Light.cs
- SettingsBindableAttribute.cs
- TrustLevelCollection.cs
- SpellerStatusTable.cs
- ImageAutomationPeer.cs
- MaskedTextProvider.cs
- CorrelationTokenInvalidatedHandler.cs
- CancelRequestedRecord.cs
- TextBoxBase.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- WebZone.cs
- HttpCapabilitiesEvaluator.cs
- XmlSchemaGroup.cs
- FieldBuilder.cs
- StringCollectionMarkupSerializer.cs
- ResolvedKeyFrameEntry.cs
- EtwTrace.cs
- ActivityInstance.cs
- COAUTHINFO.cs
- FontUnitConverter.cs
- ListInitExpression.cs
- TextFormatterHost.cs
- Pen.cs
- IsolationInterop.cs
- SHA512Managed.cs
- SqlConnectionPoolProviderInfo.cs
- PeerName.cs
- StringFunctions.cs
- BrowserCapabilitiesCodeGenerator.cs
- LoginView.cs
- BaseParser.cs
- DateRangeEvent.cs
- PrintEvent.cs
- HandlerBase.cs
- WebPartExportVerb.cs
- ControlCachePolicy.cs
- WebServiceTypeData.cs
- securitymgrsite.cs
- TemplateBindingExpression.cs
- MemberRelationshipService.cs
- EdmRelationshipRoleAttribute.cs
- TreeNodeBindingCollection.cs
- SiteOfOriginPart.cs
- BamlLocalizabilityResolver.cs
- CqlParser.cs
- DoubleLinkList.cs
- NamespaceDecl.cs
- ArgumentNullException.cs
- ParentUndoUnit.cs
- DocumentOrderQuery.cs
- CodeDomDecompiler.cs
- SvcMapFile.cs
- DashStyle.cs
- Nodes.cs
- DateTimePicker.cs
- _AutoWebProxyScriptHelper.cs
- PackWebResponse.cs
- ZipIOBlockManager.cs
- Selector.cs
- ExpressionsCollectionConverter.cs
- Attributes.cs