在线代码上更改Delphi线程大小

时间:2014-02-21 13:35:08

标签: delphi delphi-2007

这是我的问题:

我当前的线程默认创建为1024kb,当我通常需要少于50kb时 有没有办法通过编码来参数化它的大小?我只能通过菜单找到改变它的方法。

提前致谢。

1 个答案:

答案 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 Pascalarticle显示使用不同值的效果。