FuncTask
FuncTask
выполняет любую функцию, пока очередь показывает статус «в работе». Задача полезна для операций без пользовательского ввода: загрузка данных, проверка подключений, подготовка окружения.
Создание
error
. Любая ошибка отображается в интерфейсе и может остановить очередь.
Опции конфигурации
WithStopOnError
Run()
завершится с этой ошибкой.
WithSummaryFunction
Комбинирование с другими задачами
FuncTask
всё равно выполнится, но будет помечен как отклонённый (см. YesNoTask
).
Рекомендации
- Не блокируйте рендеринг. Если функция выполняется долго и может предоставить прогресс, обновляйте состояние через внешние каналы либо используйте несколько последовательных
FuncTask
. - Комбинируйте с таймерами. Для долгих операций добавьте
time.Sleep
или прогресс-бары внутри функции, если это оправдано. - Не выводите в stdout. Пусть очередь управляет экраном. Для логирования используйте файлы или отдельный канал вывода.
- Используйте горутины осторожно.
FuncTask
вызывается внутри основного цикла. Если запускаете горутину, синхронизируйте её завершение внутри функции, иначе очередь перейдёт к следующей задаче преждевременно.