У меня есть программа (в Delphi 10.3), которая позволяет пользователю настраивать доступ к базе данных FireDA C во время выполнения, используя стандартный диалог, предоставляемый библиотеками (как указано в справке FireDA C)
TfrmFDGUIxFormsConnEdit.Execute(DBConnection, '')
Если пользователь завершает работу вскоре после этого, происходит сбой программы с исключениями в TFDPhysMSSQLDriver.GetServers
. Это связано с тем, что эта функция запускает TTask для просмотра всех доступных серверов MS SQL, выполнение которого занимает довольно много времени и выдает ошибки защиты, как только она пытается обработать любой «прогресс», достигнутый после завершения работы остальной части приложения. , Поскольку это происходит в библиотеке FireDA C, я не могу получить доступ к дескриптору ITask для задачи, ожидающей ее, и, похоже, нет никакого очевидного способа дождаться завершения всех невыполненных задач TTas.
Кто-нибудь знает одобренный метод для ожидания выполнения этой задачи или всех задач до конца sh или что еще я могу сделать, чтобы "обезопасить себя" перед выходом?