Массовая cкачка музыки с VK Подкажите пишу массовый скачиватель музыки с VK по определенному ID контакта. Но появилась проблема с потоками. Подскажите что не так делаю. Все ссылки паршу в StringList а при попытке получить доступ к нему через поток вылазиет ошибка. http://www.sendspace.com/file/bdjbcg
http://avtuh.ru/2010/10/10/delphi-videourok-mnogopotochnost-i-sinxronizaciya.html Вот посмотри урок. Может поможет.
Наверно смотреть надо здесь: Перепиши подругому или используй критические секции. Ну а лучше почитать вот это:Martin Harvey - Threads.
Даже если не редактировать данные там то есть просто читать все равно не получается получить урлы с StringList.
Запихать MessageBox и посмотреть что возвращает Trim(RegExp.Match[0]). PS: Нет студии, поэтому попробуйте сами. И книжку прочитайте все равно.
ListUrlMusic.Free; - потоки не успевают отработать , а обьект уже освобожден. И я не могу понять почему в str := ListUrlMusic[0]; индекс всегда ноль.
TStringList не потокобезопасный класс, а в коде возможны одновременные обращения к объекту со стороны более чем одного потока. Надо синхронизировать.
при создании нового модуля-потока File->new->other->thread object в тексте модуля есть закомментированная подсказка насчет synchronize я так понимаю что у вас каждый тред берет какой-то урл и по нему качает файл. поскольку я synchronize недолюбливаю, я делаю проще: при создании потока ему в качестве параметра передается тот самый УРЛ с которым он должен работать, так что потокам не нужно лезть в одно и то же место чтобы "взять себе задание". копайте в сторону прописывания своего Constructor Create