Hello,
Yes, your understanding of how breakpoints work in a multithreaded program in Visual Studio is correct. The behavior you're seeing is because execution is being halted due to a different thread hitting the breakpoint after you try to step over.
Here are the responses to your queries:
1. As for holding other threads while single stepping one, Visual Studio only freezes the thread that triggers the breakpoint by default. This is to avoid losing synchronization between threads. However, you can freeze and thaw individual threads manually:
- To do this, during debugging, open the Threads window (Debug > Windows > Threads).
- This window shows you the list of all the currently running threads. You can right-click on a thread and...