Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.04;
Скачать: CL | DM;

Вниз

Глюк Sleep в TThread   Найти похожие ветки 

 
Witaliy   (2003-10-05 13:24) [0]

Есть процедура :

procedure TMyThread.SndMsg;
var
i: Integer;
Begin
For i:=0 To Main.MainForm.ServerSocket.Socket.ActiveConnections-1 Do
Begin
If Main.MainForm.ServerSocket.Socket.Connections[i].RemoteAddress=IP Then
Begin
Main.MainForm.ServerSocket.Socket.Connections[i].SendText(CommandsString);
End;
End;

End;

procedure TMyThread.Execute;
Begin
While Terminated=False Do
Begin
Synchronize(SendMessage);
Sleep(5000);
^^^^^^^^^^^
End;
End;

Так вот, трабл заключается в том, что если в программе происходит какой-либо Exception( не в этом потоке, а в пртоке основной программы), то функция Sleep засыпает и не просыпается, т.е. например Появляется в приложении окно с ошибкой, я нажимаю скажем OK и поток дальше не выполняется. Подскажите если кто знает в чем дело. Программа написана в Delphi 7 и работает под OS Win XP и 2000


 
Digitman ©   (2003-10-05 13:51) [1]

procedure TMyThread.Execute;
Begin
try
...
except
.. здесь при необходимости ведем лог исключений
end
End;


 
Witaliy   (2003-10-05 14:10) [2]

procedure TMyThread.Execute;
Begin
try
...
ShowMessage(0,"Before","",0);
Sleep(50000);
ShowMessage(0,"After","",0);
except
ShowMessage(0,"Except","",0);
end
End;

Сделал так. Судя по тому что сообщения нет, Except тоже не происходит у потока.


 
DiamondShark ©   (2003-10-05 22:31) [3]

Вообще-то, поток в таком случае прибивается...
Отладчик-то на что даден? Кто мешает окошко Threads посмотреть.


 
DiamondShark ©   (2003-10-05 22:33) [4]

{$flood+}
Пошто тему в "Сети" перенесли?
{$flood-}


 
Digitman ©   (2003-10-06 08:00) [5]


> Судя по тому что сообщения нет, Except тоже не происходит
> у потока.


обращение из доп.код.потока к объектам VCL, работающим с канвой, недопустимо без синхронизации с осн.код.потоком

см. Synchronize()



Страницы: 1 вся ветка

Текущий архив: 2003.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
6-11648
Lam
2003-10-09 16:49
2003.12.04
Порты


3-11588
rtooo
2003-11-13 21:57
2003.12.04
какими базами для этого лучше всего пользоваться


4-11744
vadfe
2003-10-06 17:45
2003.12.04
WM_GETTEXT- Help Please!


3-11589
petr
2003-11-16 18:20
2003.12.04
исправление значения по умолчанию поля базы данных


6-11650
Alexx_AI
2003-10-10 16:34
2003.12.04
Программно в сеть W2000 XP