这是我的问题:
我当前的线程默认创建为1024kb,当我通常需要少于50kb时 有没有办法通过编码来参数化它的大小?我只能通过菜单找到改变它的方法。
提前致谢。
答案 0 :(得分:1)
无法使用TThread
指定堆栈大小。 TThread
创建代码路径的线程导致CreateThread
API被调用以使用可执行文件的默认堆栈大小。对于Delphi可执行文件,这默认为1MB(如您所述)。虽然您可以通过链接器选项(maximum stack size)或相应的compiler directive修改此值(*),但这将对使用默认堆栈的所有线程产生影响应用程序(主要,第三方TThread,......)。
如果您不能使用TThread
,则可以使用BeginThread
RTL功能让StackSize
传递它,以便在STACK_SIZE_IS_A_RESERVATION
中加入CreationFlags
1}}。
(*)将为线程堆栈保留的值,Te Waka o Pascal有article显示使用不同值的效果。