Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Cancel thread button / 9 сообщений из 9, страница 1 из 1
22.07.2016, 17:13
    #39278886
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
Всем доброго времени суток.

Хотел спросить где можно почитать или как реализовать волшебную кнопочку Cancel. По которой будет генерироваться событие, которое можно будет поймать в Task<T> и совершить сохранение проделанной работы, после чего поток закончится.

Причем, хорошо бы, чтобы узнать о том, что задача закончилась можно было бы в любом месте выполняемого задачей кода, не знающем о самой Task.

реализация идет new Thread(Task<T>).start() и callback<T>
...
Рейтинг: 0 / 0
22.07.2016, 17:22
    #39278898
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
DNShark,
Любой event bus + в тасковом тхреде проверять флаг того, что пользователь нажал на cancel периодически.
...
Рейтинг: 0 / 0
22.07.2016, 17:28
    #39278906
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
Не знаю где найти нормальный tutorial. Но вам нужно смотреть не Thread/Runnable, а более современный API

Executors, ExecutorService и Future у которого есть метод cancel.
Важно понимать, что ваш фоновый процесс Callable\Runnable должен уметь обрабатывать отмену через флаг или InterruptedException.
Процесс, который не блокируется и не проверяет флаг прерывать не безопасно.
...
Рейтинг: 0 / 0
22.07.2016, 17:34
    #39278916
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
...
Рейтинг: 0 / 0
22.07.2016, 17:39
    #39278922
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
у меня
...
Рейтинг: 0 / 0
22.07.2016, 17:40
    #39278923
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
public abstract class Task<V> extends FutureTask<V> implements Worker<V>, EventTarget

вродь, не такое старое API
...
Рейтинг: 0 / 0
22.07.2016, 17:41
    #39278928
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
ага, спасибо. Т.е. надо реализовать cancel, а потом реализовать внутре busEvent. Насколько я понял.
...
Рейтинг: 0 / 0
22.07.2016, 17:45
    #39278930
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
Только проблема в том, что в местах большой загрузки я не могу написать task.isCancelled(). Или мне придется в самую глубь кода передавать всю таску.... Что не хотелось бы делать.
...
Рейтинг: 0 / 0
22.07.2016, 17:53
    #39278937
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cancel thread button
хотя там есть onCancelledProperty() на него можно повесить Listener который сгенерирует событие, думаю мне хватит. Всем спасибо)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Cancel thread button / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]