Форум: "Начинающим";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];
ВнизЗамена указателей на Локал.Перем при работе функции в потоке Найти похожие ветки
← →
Pcrepair © (2013-01-17 14:07) [0]Добрый день. есть код загрузчика, использующий указатели:
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;
Внимание! Вопрос:
- какой вариант функции предпочтительнее для использования в потоке (многопоточная загрузка страниц), учитывая использование памяти.
- не будет ли в первом варианте вероятности использования одних и тех же сегментов памяти разными потоками
← →
sniknik © (2013-01-17 14:17) [1]> - какой вариант функции предпочтительнее
Result:= HTTP.Get(Url); (*получаем данные в поток памяти*)
> - не будет ли в первом варианте вероятности использования одних и тех же сегментов памяти разными потоками
обоих будут... это же твой код! (хотя и нет кода потока/взаимосвязей, но результат ожидаем)
← →
Игорь Шевченко © (2013-01-17 14:23) [2]Запасаемся попкорном
http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=997762
← →
Slym © (2013-01-17 14:31) [3]+1
http://www.programmersforum.ru/showthread.php?t=225368
← →
Сергей М. © (2013-01-17 14:44) [4]
> Замена указателей на Локал.Перем
В упор не вижу ничего подобного ни в одном варианте.
Но попкорном на всякий случай запасся)
← →
brother © (2013-01-17 15:59) [5]количеством берешь? теперь на тебя уже три! сайта работают ;)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c