Search code examples
.netmultithreadingvisual-studiodebuggingvisual-studio-debugging

Is there a way to debug multithreaded applications in singletreaded mode in Visual Studio?


When I debug multithreaded .net applications I want the max degree of parallelism to be 1. I mean I want only one thread to run at a time.

In that way I wouldn't have to go through long tutorials about flagging threads, using parallel watch or learn how find out the ID of "my thread". All I am interested in is to debug multithreaded application in a singletreaded mode.

Is there any way of making Visual Studio work with one thread at a time? Or make my .net application single threaded with a global setting? Or a workaround, maybe set Windows 10 to run in singlethreaded mode? Be creative!


Solution

  • Is there a way to debug multithreaded applications in singletreaded mode in Visual Studio?

    Just as Dialecticus suggested, you could try these:

    Suggestion

    1) Use Threads Window

    • first, set a breakpoint at the entry of the main function

    • start debugging and then enter Debug-->Windows-->Threads--> then right-click on the threads that you do not want to debug and then select Freeze. And note that you have to always click on switch to thread, every time something happens.

    • You can refer to this document about using Threads Window.

    2) you can try to follow this document to set a new breakpoint about the specific single thread ID to debug it.

    3) there is also a vs extension called Debug Single Thread. You can also use it.