Collecting Thread and Process Concurrency Data


This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

The Visual Studio Profiling Tools concurrency profiling method enables you to collect resource contention data that includes information about every synchronization event that causes a function in the profiled application to wait for access to a resource.


  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional

    You can specify the concurrency profiling method by using one of the following procedures:

  • On the first page of the Profiling Wizard, click Concurrency

  • On the General page of the properties dialog box for the performance session, click Concurrency.

  • On the Performance Explorer toolbar, in the Method list, click Concurrency.

Common Tasks

You can specify additional options in the Performance SessionProperty Pages dialog box of the performance session. To open this dialog box:

  • In Performance Explorer, right-click the performance session name, and then click Properties.

    The tasks in the following table describe options that you can specify in the Performance SessionProperty Pages dialog box when you profile by using the concurrency method.

Task Related Content
On the General page, specify naming details for the generated profiling data (.vsp) file. - How to: Set Performance Data File Name Options
On the Launch page, specify the application to start if you have multiple .exe projects in your code solution. - How to: Specify the Binary to Start
On the Tier Interaction page, add ADO.NET call data to the profiling run. - Collecting tier interaction data
On the Windows Counters page, specify one or more operating system performance counters to add to the profiling data as marks. - How to: Collect Windows Counter Data
On the Advanced page, specify the version of the .NET Framework run-time to profile if your application modules use multiple versions. By default, the first version loaded is profiled. - How to: Specify the .NET Framework Runtime