Показать сообщение отдельно

  #4805  
Старый 05.11.2009, 11:57
Пуховой
Banned
Регистрация: 25.11.2007
Сообщений: 62
С нами: 9715564

Репутация: 89
По умолчанию

Использую при создании ПО критические секции. Но одна из последних программ постоянно зависает и, чую я, по вине неправильного их использования.

Грешу на кусочек кода в потоке:
Код:
  if accounts.Count > 0 then
  begin
    CriticalSection.Enter;
      account := accounts.Strings [0];
      accounts.Delete (0);
    CriticalSection.Leave;
  end else
  begin
    to_log ('come to an end accounts');
    exit;
  end;
и функцию:
Код:
function to_used (str : string) : integer;
var
  t : textfile;
begin
  CriticalSection.Enter;
    assignfile (t, curdir + '\config\send - used accounts.txt');
    append (t);
    writeln (t, str);
    closefile (t);
  CriticalSection.Leave;
  Result := 1;
end;
accounts - tstringlist массив строк, строки в него загружаются из файла, при запуске программы.

Кто что может посоветовать?

Заранее спасибо.
 
Ответить с цитированием