![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объекты в потоках. [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;