Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка доступа при работе с потоками/нитями [D5, Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2

Tkach_ ©   (2002-06-13 13:36:00) 

Столкнулся с проблемой при работе с потоками.
Поток А запускает поток В. Код выглядит следующим образом:

procedure TAThread.Execute;
begin
while not Terminated do
begin
Synchronize(UpdateLog);
if StartBFlag then
BList.Add(TBThread.Create(False));
end;
end;

procedure TBThread.Execute;
begin
while not Terminated do
Synchronize(UpdateLog);
end;

В результате генерируется ошибка: "access violation at <adress1>: write of adress <adress2>"

Помогите разобраться.


Игорь Шевченко   (2002-06-13 14:12:00) [21]

Э...код бы...


Tkach_   (2002-06-13 14:10:00) [22]

2 Игорь Шевченко ©
UpdateLog обоих потоков обновляет Мемо главной формы и устанавливает флаг StartBFlag (только поток А)


Digitman   (2002-06-13 13:44:00) [23]

<adress1> , <adress2> - это для тебя диагностика, а не для Пушкина)


Значение <adress1> совместно с меню "Search|Find Error.." главного окна IDE Делфи, запустившего приложение врежиме встроенной отладки, укажет тебе модуль и строку в нем, при выполнении которой произошло AV


Игорь Шевченко   (2002-06-13 13:37:00) [24]

Что делает UpdateLog ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо