Зависает поток в цикле и не выходит
Написал программу и поток зависал в цикле, впервый раз проверял код через дебаг и всё было окей, когда проверял в релизе зависло в цикле while(count != 0)
подавил в цикл Thread.Sleep(200);
и всё заработало и в релизе. Вот примерная структура кода;
void start(int threadCount)
{
int count = 0;
foreach(var item in items)
{
while(count == threadCount)
Thread.Sleep(200);
count++;
new Thread(() =>
{
convert(param);
count--;
}).Start();
}
while(count != 0) //Зависает всё время здесь
Thread.Sleep(200);
}
Зависало как говорил ранее когда в релизе попробовал запустить, нашёл где виснет с помощью брекпойнтов и решил слипом проблему, после на длительной проверке программы с большим количеством данных (программа жрала оперативы не более 100мб) работает пару часов, потом может сам по себе в цикле этом встать и всё, вариант что count
был не равным нулю отпадает, т.к. это проверял и значения после изменений для теста выводил, ума не приложу почему он там виснет и не перестаёт висеть, более двух часов ждал, он не отвисал, хотя все вызванные им потоки были завершены. Подскажите кто знает что я неправильно делаю