![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка доступа при работе с потоками/нитями [D5, Win95/98, WinME, NT4, Win2k, WinXP]
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 ?