Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2009, 15:57   #11
ZeitGeist7
Пользователь
 
Регистрация: 02.02.2009
Сообщений: 54
По умолчанию

написал я поток...
"спасибо" почему то говорить не хочется....
так вот вопрос:
вот модуль
Код:
unit DownloadTread;

interface

uses
  Classes , Windows , wininet ;

//--------------------поток---------------------------
//---------------создание--потока---------------------
type
TMyThread = class(TThread)
  private
    _ThreadLink, _ThreadFile : string;
    F: File;
    BufferLen,SumSize: DWORD;
    hSession, hURL: HInternet;
    Buffer: array[1..1024] of Byte;
    err: boolean;

  protected

    procedure Execute; override;
   public
    constructor Create(const ThreadLink: string; const ThreadFile: string );
  end;

implementation
//uses MainUnit;
 // Synchronize(ThreadBoolUpdate);
//---------------создание--потока---------------------

constructor TMyThread.Create(const ThreadLink: string; const ThreadFile: string );
begin
  _ThreadLink := ThreadLink;
  _ThreadFile := ThreadFile;
  inherited Create(False);
end;
//--------------для-синхронизации-результата-выполнения-потока-------
procedure ThreadBoolUpdate;
begin
//
end;
//--------------для-синхронизации-результата-выполнения-потока-------
//---------------код--потока--------------------------
procedure TMyThread.Execute;
begin
FreeOnTerminate := True;
try
  SumSize:=0;                         //_ThreadLink, _ThreadFile
//  ResumePos:=0;   //Инициализируемся
  AssignFile (F,_ThreadFile);  //Свяжемся с файлом
  ReWrite(f,1);  //А раз нет, так создадим
//Открыли сессию
  hSession:= InternetOpen('X-Kachalka',PRE_CONFIG_INTERNET_ACCESS,nil,nil,0);
//И наш УРЛ
  hURL := InternetOpenURL(hSession,PChar(_ThreadLink),nil,0,0,0);
  InternetQueryDataAvailable(hURL, SumSize,0,0);
  REPEAT //Качаем
    err:= InternetReadFile(hURL, @Buffer,SizeOf(Buffer),BufferLen); //Читаем буфер
    IF err= false or terminated then //Ошибка чтения
       begin
          InternetCloseHandle(hURL);
          Closefile(f);
 //         _ThreadResult := false;
          exit;
          terminate;
       end;
     BlockWrite(f, Buffer, BufferLen); //Пишем в файл
  UNTIL (BufferLen= 0);
   begin
      InternetCloseHandle(hURL);
//      _ThreadResult := true;
      Closefile(f);
      terminate;
   end;
except
 begin
//  _ThreadResult := false;
  InternetCloseHandle(hURL);

 end;
terminate;
end;
end;
//---------------код--потока--------------------------
//--------------------поток---------------------------

end.
вызывается так:
TMyThread.Create(_Link,_File);

так вот: из-за чего прога с подключённым к нему потоком после завершения выполнения потока увеличивает свой размер в памяти и не желает его понижать? что у меня не free?
я настолько измучен этим что мне просто необходим свежий взгляд со стороны
ZeitGeist7 вне форума Ответить с цитированием
Старый 26.02.2009, 19:34   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а ты сам поток потом освобождать не забываешь?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.02.2009, 20:23   #13
ZeitGeist7
Пользователь
 
Регистрация: 02.02.2009
Сообщений: 54
По умолчанию

как? то есть terminate писать после TMyThread.Create(_Link,_File); ?
ZeitGeist7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закачка файла с ссылки Titan123 Работа с сетью в Delphi 5 20.10.2008 13:25
Закачка и сохранение файла с удалённого сервера sKarl PHP 2 19.10.2008 11:51
Закачка файла или как не укачатся Dj_smart Софт 8 02.10.2008 09:39
Проблема с потоком Araver Общие вопросы Delphi 4 16.10.2007 04:30