Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.01.2013, 14:00
Pcrepair
 
Сообщения: n/a
По умолчанию Замена указателей на Локал. Перем при работе функции в потоке

Добрый день. есть код загрузчика, использующий указатели:

Код:
function LoadPage(const Url: String): RawByteString;
var
  HTTP: TIdHTTP;
  HtmlPage: TMemoryStream;
  T:TStringList;
begin
  T:=TStringList.Create;
  HTTP := TIdHTTP.Create(nil);
  try
    HtmlPage := TMemoryStream.Create;
    try
      HTTP.HandleRedirects := True;
      HTTP.Get(Url, HtmlPage); (*получаем данные в поток памяти*)
      (*------------------------------------------*)
      SetLength(Result, HtmlPage.Size);
      Move(HtmlPage.Memory^, Pointer(Result)^, HtmlPage.Size);
      (*------------------------------------------*)
    finally
      FreeAndNil(HtmlPage);
    end;
  finally
    FreeAndNil(HTTP);
    FreeAndNil(T);
  end;
end;
и такой код, использующий локальную переменную Т

Код:
function LoadPage(const Url: String): RawByteString;
var
  HTTP: TIdHTTP;
  HtmlPage: TMemoryStream;
  T:TStringList;
begin
  T:=TStringList.Create;
  HTTP := TIdHTTP.Create(nil);
  try
    HtmlPage := TMemoryStream.Create;
    try
      HTTP.HandleRedirects := True;
      HTTP.Get(Url, HtmlPage); (*получаем данные в поток памяти*)
      (*---------------------------*)
        HtmlPage.Position:=0;
        T.LoadFromStream(HtmlPage);
        Result:=T.Text;
      (*---------------------------*)
    finally
      FreeAndNil(HtmlPage);
    end;
  finally
    FreeAndNil(HTTP);
    FreeAndNil(T);
  end;
end;

Внимание! Вопрос:
- какой вариант функции предпочтительнее для использования в потоке (многопоточная загрузка страниц), учитывая использование памяти.
- не будет ли в первом варианте вероятности использования одних и тех же сегментов памяти разными потоками
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025