Доброе время суток. Помогите пожалуйста с решением этой проблемы, а то я чего-то не догоняю в чем косяк. Суть вот в чем. В основном потоке идет подключение к базе данных. Из основного потока порождается еще один поток в котором открывается модальная форма с анимацией, В которой проверяется состояние подключения если подключение установлено то в лог отправляется сообщение а поток в котором форма с анимацией прибиваеться. Так вот... он не прибивается. Не могу понять почему. Помогите кто может
Вот код
Это процедура в основном потоке
cpp Код:
void __fastcall TOptionMainForm::TestConnectionButtonClick(TObject *Sender)
{
if(DataForm->Connection->Connected)
{
DataForm->Connection->Close();
PerformNotification(NoticeLabel,SERVER_DISCONNECTION);
FormActivate(this);
}
DataForm->FillConnectonParams();
ProcessAnimation *pa = new ProcessAnimation(false); // Нить создали и пытаемся подключиться
try{
DataForm->Connection->Open();
}
catch(...)
{
PerformNotification(NoticeLabel,CONNECTION_HAS_FAULT);
pa->Terminate();
}
}
Вот код наследника TThread
cpp Код:
__fastcall ProcessAnimation::ProcessAnimation(bool CreateSuspended)
: TThread(CreateSuspended)
{
this->Priority = tpLower;
FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall ProcessAnimation::Execute()
{
//---- Place thread code here ----
Connected = DataForm->Connection->Connected;
Synchronize(&ProcessStart);
while(!Connected);
{
Synchronize(&ProcessCheck);
Sleep(TIME_OUT);
}
Synchronize(&ProcessEnd);
}
//---------------------------------------------------------------------------
void __fastcall ProcessAnimation::ProcessEnd(void)
{
pf->Close();
Options::AddNotice(SERVER_FOUNDED);
delete pf;
}
void __fastcall ProcessAnimation::ProcessStart(void)
{
pf = new TProcessForm();
pf->ShowModal();
}
void __fastcall ProcessAnimation::ProcessCheck(void)
{
Connected = DataForm->Connection->Connected;
}
Я на всякий случай синхронизировал все что можно. Хотя где-то все рвно ошибаюсь. Любая критика и помощь приветствуются, заранее спасибо