Channels (threads view)
The Concurrency Visualizer shows four kinds of channels: thread channels, disk channels, marker channels, and GPU channels.
A thread channel shows thread state, by color, for just one thread. When you pause on the channel name, the start function for the given thread is displayed. The Concurrency Visualizer detects several kinds of threads. The most common kinds are shown in the following table.
|Main thread||The thread that started the app.|
|Worker thread||A thread that was created by the application main thread.|
|CLR Worker Thread||A worker thread that was created by the common language runtime (CLR).|
|Debugger Helper||A worker thread that was created by the Visual Studio debugger.|
|ConcRT Thread||A thread that was created by the Microsoft Concurrency Runtime.|
|GDI Thread||A thread that was created by GDIPlus.|
|OLE/RPC Thread||A thread that was created as an RPC Worker Thread.|
|RPC Thread||A thread that was created as an RPC Thread.|
|Winsock Thread||A thread that was created as a Winsock Thread.|
|Thread Pool||A thread that was created by the CLR Thread Pool.|
Disk channels correspond to physical drives in the computer. Because separate channels for Read and Write operations exist for each physical drive on the system, each drive has two channels. The disk numbers correspond to kernel device names. A disk channel is shown only if there was activity on the disk.
Marker channels correspond to events generated by the app and the libraries it uses. For example, the Task Parallel Library, Parallel Patterns Library, and C++ AMP generate events that are displayed as markers. Each marker channel is associated with a thread ID, which is displayed next to the description of the channel. The ID identifies the thread that generated the event. The description of the channel includes the name of the Event Tracing for Windows (ETW) provider that generated the events. If the channel displays events from the Concurrency Visualizer SDK, the series name is also displayed.
GPU channels display information about DirectX 11 activity on the system. Each DirectX engine that's associated with the graphics card has a separate channel. The individual segments represent the time that's spent processing a DMA packet.