Показать сообщение отдельно
  #4  
Старый 23.05.2011, 18:53
kukuruku310 kukuruku310 вне форума
Прохожий
 
Регистрация: 23.05.2011
Сообщения: 6
Репутация: 10
По умолчанию

Код:
procedure TMyThread.Execute;
begin
  while not Terminated do begin
    CriticalSection.Enter;
    Synchronize(Work);
    CriticalSection.Leave;
    Sleep(1000);
  end;
end;

Ошибка в том, что какой-то поток, захватив критическую секцию, крутится, пока не завершится приложение, а его напарник не получает шанса на исполнение (Sleep поставлен только для наглядности). Ну и с логикой чтения-записи как-то не совсем понятно...
Ответить с цитированием