Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизЗависание TThreadList Найти похожие ветки
← →
Bes © (2005-02-21 03:12) [0]допутим
есть запись
TThreadRec=record
ThreadName:string[10];
ThreadFile:string[255];
Thread:TObject;
end;
PThreadRec=^TThreadRec;
...
var
ThreadList:TThreadList;
так вот, при создании какого-либо потока, создаю запись, вношу параметры и добавляю его в ThreadList.
Так же в программе есть форма со списком TListBox, в который надо поместить имена всех потоков.
делаю...
ListBox1.Clear;
try
for i:=0 to ThreadList.LockList.count-1 do
Listbox1.items.add(PThreadRec(ThreadList.LockList.Items[i])^.ThreadName);
finally
ThreadList.UnLockList;
end;
...данное деяние вызывает зависание программы (причем конкретное)... при переходе на TList - все в ажуре, летает и прыгает...
Мастера, так в чем проблема? Я понимаю что TList плохо использовать с потоками, но почему же присходить зависание?
Благодарствую!
← →
Юрий Зотов © (2005-02-21 05:37) [1]Посчитайте, сколько раз вызывается LockList и скажите - зачем?
Попробуйте так:
ListBox1.Clear;
with ThreadList, LockList do
try
for i := 0 to Count - 1 do
Listbox1.Items.Add(PThreadRec(Items[i])^.ThreadName)
finally
UnlockList
end;
Если причина только в этом, то должно заработать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.029 c