Нет технической причины, по которой это не сработает - это совершенно законно.
Почему этот код является "плохой частью"?
Вам нужно будет отладить / профилировать это и recursiveFunc
, чтобы увидеть, где происходит снижение производительности.
Исходя из кода, который вы разместили, вы проверили, что condn
когда-либо удовлетворен, и ваш цикл завершается. Если нет, то он зациклится навсегда.
И что на самом деле делает recursiveFunc
UPDATE
Исходя из вашего комментария о том, что каждый поток выполняет 15 000 итераций, первым делом я бы переместил Get an instance to the database connection
код за пределы recursiveFunc
, чтобы вы получали его только один раз для каждого потока.
Даже если вы переписываете в цикл (согласно ответу Мартина Б.), вы все равно захотите это сделать.