Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Размер стека потока [D5, WinXP]


AndyDN ©   (2002-10-28 12:21:00) 

Привет всем.
Вот прочитал статью о производительности многопоточных программ
( http://rsdn.ru/article/default.asp?baseserv/liveobj.xml).
В ней сказано, что при создании потока ему по умолчанию выделяется 1 мегабайт стека. Как в делфях уменьшить это значение (если я пользуюсь TThread)?


AndyDN   (2002-10-28 12:52:00) [1]

А что делать с private переменными и Create от TObjecta

constructor TThread.Create(CreateSuspended: Boolean);
var
Flags: DWORD;
begin
inherited Create;
AddThread;
FSuspended := CreateSuspended;
Flags := 0;
if CreateSuspended then Flags := CREATE_SUSPENDED;
FHandle := BeginThread(nil, 0, @ThreadProc, Pointer(Self),Flags, FThreadID);
end;


AndyDN   (2002-10-28 12:43:00) [2]

Спасибо!


MBo   (2002-10-28 12:32:00) [3]

Если это действительно так необходимо, создай наследника от TThread, в конструкторе которого вызывай BeginThread не с 0 (тогда размер стек такой же, как у вызывающего (обычно главного) потока, по умолчанию $00100000), а с нужным параметром


Наверх

Титульная страница Поиск, карта сайта Написать письмо