Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2009, 10:44   #1
PUH
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 35
Восклицание CriticalSection -> зависание программы

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

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

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

Заранее спасибо.
PUH вне форума Ответить с цитированием
Старый 05.11.2009, 13:19   #2
PUH
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 35
По умолчанию

Грешил неверно.

Программа зависала при обращении таймера к критической секции в момент её занятости одним из потоков.

Проблема решена вынесением кода таймера в отдельный поток.
PUH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависание при пост запросе Фенрир Работа с сетью в Delphi 1 14.12.2009 15:18
Зависание при показе Диалога nusik Общие вопросы C/C++ 11 02.07.2009 08:20
Зависание клиента Firebird. KrPr БД в Delphi 4 28.01.2009 09:13
Зависание JRcoker Общие вопросы Delphi 8 06.08.2008 08:29
"Зависание" программы. no. Общие вопросы Delphi 2 19.02.2007 08:44