Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Зависание 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.044 c
3-1107349942
Топпер
2005-02-02 16:12
2005.03.06
FastReport нумерация строк данных


3-1107077887
Igor_thief
2005-01-30 12:38
2005.03.06
Редактирование в DBGrid


1-1109100518
Vasya.ru
2005-02-22 22:28
2005.03.06
эээ... не знаю как это коротко написать...


1-1108995066
Q21
2005-02-21 17:11
2005.03.06
При переходе на новый профиль в Windows исчезли все компоненты!


1-1108985710
tupnyaki poshli
2005-02-21 14:35
2005.03.06
BlockRead/BlockWrite