У меня есть поток, который работает в цикле и хотел бы убить поток после того, как диалог, который запустил поток, закрывается. Каков наилучший способ сделать это?Убить нить на диалоге Закрыть
ответ
Вы можете позвонить по номеру interrupt()
. Однако это не остановит поток, если вы не сделаете что-то в нем внутри цикла потока.
Thread t = new Thread() {
@Override
public void run() {
while (shouldLoop() && !isInterrupted()) {
. . .
}
}
}();
// somewhere else:
t.interrupt(); // will exit thread on next loop iteration
Если вы не хотите использовать interrupt()
(скажем, у вас нет ссылки на поток), вы можете установить флаг где-то есть доступ к коду потока. Вам все равно нужно проверить его в петле потока и выйти из цикла (и метода run()
), чтобы выйти из потока.
Что мне нужно делать в потоковом цикле? –
@RyanNaddy - Вы должны написать цикл таким образом, чтобы он часто проверял 'isInterrupted()' (или какой-либо флаг, который вы используете) и завершает цикл, когда флаг становится установленным. –
Я сделал это точно так же, как в примере, и, похоже, он правильно вышел из цикла. 'while (true &&! this.isInterrupted()) {' это то, что я использую. –
Вы отправили could listen в диалоговое окно закрытия событий и interrupt нить.
- 1. как убить заблокированную нить
- 2. как убить нить качанием?
- 3. Как убить нить в C#?
- 4. Убить многопоточную нить сервера C#
- 5. вручную убить яваскрипту нить
- 6. Python: Убить нить
- 7. Как убить нить java?
- 8. Как убить основную нить?
- 9. Убить подвешенную нить
- 10. Альтернативный способ убить нить
- 11. Убить нить, не влияя на текущую тему
- 12. Убить нить из другого процесса
- 13. убить отдельную нить, имеющую розетку
- 14. Убить нить в библиотеке Pthread
- 15. Как убить нить в delphi?
- 16. Как убить нить в сервисе?
- 17. Как убить нить в андроиде?
- 18. ищет способ остановить/убить нить
- 19. Bordeaux-Threads: как убить нить?
- 20. В качели можно убить нить?
- 21. Perl нити убить таймаута нить
- 22. Убить нить в PropertyListener (JavaFX8)
- 23. Как закрыть нить изнутри?
- 24. Правильный способ закрыть переднюю нить
- 25. Определить и закрыть неактивную нить
- 26. убить другую нить в моем случае
- 27. Как остановить/убить основную нить в java
- 28. Как убить нить с помощью Objective C?
- 29. Убить нить с открытым сокетом в Tomcat
- 30. Как убить витую нить в java
Какой тип диалога? Какой контекст? Пожалуйста, расскажите подробности, необходимые нам, чтобы дать разумный ответ. –