Показать сообщение отдельно
  #3  
Старый 07.01.2013, 12:49
Pcrepair
 
Сообщения: n/a
По умолчанию

lmikle, спасибо за подсказку, к сожалению она оказалась практически бесполезной в данном конкретном случае(но как метод разборки полетов), в частности сделал так:
Код:
procedure TLoader.Execute;
var Code:string;
begin
    try
    (*------------------------------*)
    Code:=LoadPage(Url); (*ту вызов загрузчика*)
       CS.Enter;  (*вход в КС*)
         try
           gStore.Add(Code); (*передаем результат в ГП*)
           Dec(CurrentNumOfTHreads); (*счетчик потоков*)
         finally
            Cs.Leave;  (*выход из КС*)
         end;
     (*-----------------------------*)
    except
         On E:Exception do
           ShowMessage(E.Message); (*просто вывести чего либо*)
    end;
end;
результат тот же: при наличии работающего торрента(хавает 95% трафика) один - два потока уходят в небытие. то есть в TLoader.Execute; никаких исключений не возникает поскольку метод GET не отработал в загрузчике.
в связи с выше перечисленным вернемся к насущной проблеме: как правильно сделать таймер внутри потока, чиста внутри потока. конечно таймер будет обращаться к системе через КС, но как конкретно?
кто нибуть в курсе?
Ответить с цитированием