Показать сообщение отдельно

[Delphi] Threads (проблема)
  #1  
Старый 23.01.2009, 03:46
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию [Delphi] Threads (проблема)

Название не случайно.
Эти грёбаные потоки забрали у меня столько нервов, что просто ужас, но речь не о нервах.

Я поставил цель создать в Delphi 7 многопоточное приложение, которое будет работать с определённым узлом интернета.
Но этот узел нестабилен.
Когда к нему можно подкл, а когда низя.
Сначала я решил поступить так:
Я объявил массив для потоков.
Код:
TH: array[1..25] of Thread; //Кстати само имя класса Thread
А в самом потоке был цикл
Код:
while(условие, что есть данные) do
//Ну и тд.
Создавал я их иллементарно просто.
Код:
for i:=1 to 25 do
                         begin
                            TH[i]:=Thread.Create(False);
                            TH[i].FreeOnTerminate:=True;
                            TH[i].Priotity:=tpLowest;
                         end;
Но возникала проблемма, что через некоторое время все потоки засирались и дальше прога не работала.

Я решил поступить иначе.
Я кинул на форму таймер и на него стал создавать потоки разумеется с определённым интервалом
Код:
                            if (i>25) then i:=1;
                            TH[i]:=Thread.Create(False);
                            TH[i].FreeOnTerminate:=True;
                            TH[i].Priotity:=tpLowest;
                            i:=i+1;
Соответственно цикл из потока был убран и поток стал выполнять одно действие.

Но возникла другая проблемма.
Моя прога стала ох..енно жрать память.

Кто мне что посоветует?
На динамику всё проверил. Там всё освобождается.

Последний раз редактировалось Flenov; 23.01.2009 в 03:55..
 
Ответить с цитированием