A process running in the debugger will run one or more Threads, including the main thread that drives core application flow (usually numbered "1"), as well as any additional threads the application may have started.

Additional threads might have been created by your code explicitly, or can have been launched under the hood by regular operations of the runtime or some of the frameworks and APIs your application uses, so it is not uncommon to see threads in the debugger that do not run any of your own code.

A thread will show as black in color in the Threads and Callstacks pane if it contains one or more Stack Frames with Debug Symbols, or in a lighter gray if none of its frames have symbols (usually a sign that it's a worker thread created by the system and not (currently) running any of your own code).

In the above screenshot, the paused application is running two threads, with the unnamed main thread "0001" containing four Stack Frames stack frames of application code, and the named "Finalizer" thread not containing any known stack frames.

See Also