
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 массив строк, строки в него загружаются из файла, при запуске программы.
Кто что может посоветовать?
Заранее спасибо.
|
|
|