Вот моя проблема: у меня есть диалог с некоторыми параметрами, которые пользователь может изменить (например, с помощью счетчика). Каждый раз, когда один из этих параметров изменяется, я запускаю поток для обновления 3D-представления в соответствии с новым значением параметра. Если пользователь меняет другое значение (или одно и то же значение снова, многократно нажимая стрелку), когда первый поток работает, я хотел бы прервать первый поток (и обновление 3D-вида) и запустить новый один с последним значением параметра.Как прервать поток быстрым и чистым способом в java?
Как я могу сделать что-то подобное?
PS: В моем методе run()
нет цикла, поэтому проверка флажка не является вариантом: поток, обновляющий трехмерный вид, в основном вызывает только один метод, который очень длинный для выполнения. Я не могу добавить какой-либо флаг в этот метод, требуя прервать либо, так как у меня нет доступа к его коду.
Можете ли вы дать нам больше информации о API, который вы используете? Вы говорите, что вы передаете что-то определенному методу из сторонней библиотеки, и это занимает много времени. Этот метод напрямую изменяет объект, в который вы проходите? Или вы получаете обратный вызов с результатами? – 2008-09-18 16:20:52
Завершает ли эта нить нормально до завершения вашего приложения? Если да, то что заставляет его остановиться? – 2008-09-18 16:28:31