void __fastcall CDbConnThread::Execute()
{
Synchronize(frmDbConn->ConnectToDb);
}
Соединение с БД в отдельном потоке
Чтобы бороться с этим, я решил поместить процедуру соединения к БД в отдельный поток. Создал класс, производный от TThread, и в функции Execute вызвал процедуру соединения:
Код:
Но программа так и продолжает зависать, сообщения не обрабатываются.
Как сделать так, чтобы программа во время соединения не зависала?
З.Ы. Мне огнептица 2.0 понравилась - порезче работает.
[/QUOTE]
Если надо/хочется не ждать завершения - используйте асинхронный режим подключения. И/или собственные функции синхронизации. Тогда, возможно, ничто вас не задержит :)
В данном вашем случае стоит проверить для начала, что именно тормозит - а затем уж помещать это в отдельный поток. 5-7 секунд достаточно много - хотя при этом многое зависит от конфигурации сети. Попытайтесь обращаться к серверу по ИП а не по имени.