Пытаюсь сделать desktop приложение, парсер контента с использованием GUI библиотеки Fyne.
Столкнулся с проблемой с логикой выполняя скрипта, а именно с подтверждением в диалоговом окне виджета dialog.ShowConfirm.
В процессе исполнения скрипта, пользователь получает диалоговое окно с предложением отказаться или продолжить парсинг.

В соответствии с документацией в функции обратного вызова виджета, после подтверждения пользователям, запускается процесс парсинга контента, который занимает какое-то время.
testStart := widget.NewButtonWithIcon(" Test ", theme.InfoIcon(), func() {
dialog.ShowConfirm(
"Начать парсинг?",
fmt.Sprintf("Ссылки для парсинга получены"),
func(yes bool) {
if yes {
progress.Show() // Порказываем и запускаем прогрессбар
progress.Start()
fmt.Println("Start")
qty, file_name := parsing(urls) // функция - парсинг товаров по ссылкам
//time.Sleep(5 * time.Second)
progress.Stop()
dialog.NewInformation("Данные получены", "Все работает!", myWindow).Show()
} else {
return
}
},
myWindow,
)
})
Однако диалоговое окно после подтверждения пользователем не закрывается сразу, а продолжает висеть до окончания выполнения функции обратного вызова. То есть, окно открыто до завершения процесса парсинга, который занимает какое-то время, и закрывается только после его окончания.
Не могу понять, начать работу функции парсинга, только после закрытия диалогового окна.