Я думаю, что этот вопрос был поднят несколько раз в прошлом, но это немного отличается, и я не мог найти подходящий ответ нигде.
У меня есть поток, который вызывает (внутри run()
) другую рекурсивную функцию. На самом деле это игровой движок, а рекурсивная функция - MiniMax.
Проблема в том, что когда пользователь хочет уйти в отставку в середине вычисления или даже отменить ход, то как мне остановить эту функцию?Остановка рекурсивной функции в JAVA (изнутри потока)
Я не могу прервать нить с boolean
, так как если вызов Минимакс уже сделан, то программа находится внутри этой функции и поток не будет проверять состояние прерывания, чтобы termintate, называя interrupt()
также не Работа.
Как остановить такую функцию?
Функция 'Minimax' является только двоичной? У вас нет источника? Действительно, это эта функция (рекурсивная или нет), которая должна быть опроса на каком-то флаге, чтобы определить, следует ли продолжать или отказаться от ее работы. –
У меня возникли проблемы с полным пониманием ситуации. Можете ли вы опубликовать фрагмент, удалив ненужный код? –
Невозможно. Либо проверьте 'boolean' на каждом рекурсивном шаге. Или, лучше, проверьте флаг прерывания в потоке на каждом шаге. –