после thread1.Start(), thread2.Start(),... потоки начинают свою работу. Но когда я попробовал пройтись дебагером, то программа, побывав некоторое время в потоке, перепрыгивают с одного потока на другой. как предотвратить переключение между потоками?
В этом их суть ... Можешь в паре из них конечно вызвать Thread.Sleep(99999); //в мс
а можно ли сделать их работу параллельной?
Она уже параллельная
Они и так параллельная
Можно в брейкпойн воткнуть условие по которому ты поймёшь в каком потоке
я так понял, нельзя "отключить" это перепрыгивание между ними, да?
Бряк стоит в методе, и как бы в нем нет никого условия в каком потоке надо останавливаться, а в каком нет
А в каком моменте ты замечаешь что одна треда начинает выполнять работу другой, в дебаггере?
в вижуальной студии можно зафиксировать поток, в рамках которого ты дебажишь, чтоб не скакало туда-сюда. при дебаге значок флажка и 'toggle thread'
https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-use-the-threads-window?view=vs-2022 статья про дебаг многопоточных апликух ну и еще куча всего на эту тему по ссылке https://docs.microsoft.com/en-us/visualstudio/debugger/debug-multithreaded-applications-in-visual-studio?view=vs-2022
О ещё какую штуку нашел, поиграйся с ней https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.beginthreadaffinity?view=net-5.0
Обсуждают сегодня