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

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

Объекты в потоках. [D7]


Риг ©   (2009-08-23 02:22:00) 

Добрый день, только начал осваивать потоки, и столкнулся со следующей проблемой:

Внутри потока создается объект для работы с Rar архивами, если у нас работает один поток - то все проходит нормально, но
если мы запускаем два или более потока, то происходит исключение "TAccessViolation at address XXXXXX in module 'unrar3.dll'"


//.....код.....//
UnZip:=TUnRar.Create(UnZip);
//....задаем параметры...//
if DirectoryExists(dir) then
FileExtract := UnZip.Extract()  //исключение происходит здесь
else
begin
 CreateDir(dir);
 FileExtract := UnZip.Extract(); // и здесь


Как можно поступить в данном случае? Желательно без остановки работы какого-либо потока.
Заранее благодарю за помощь.


Kolan   (2009-08-23 17:17:00) [1]

Как организовали исполнение по очереди?


Риг   (2009-08-23 14:09:00) [2]

да, скорее всего. Работал через раз и глючил жутко. Организовал использование его, по очереди - теперь все нормально.


Kolan   (2009-08-23 10:04:00) [3]

Возможно вам просто повезло. Проблема может быть в том, что компонент не потокобезопасный.


Риг   (2009-08-23 02:32:00) [4]

Вопрос отпал. В откомпилированной программе все работает. Извиняюсь за беспокойство


Риг   (2009-08-23 02:28:00) [5]

Использую компонент ZipTV
UnZip:TUnRar;


Наверх

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