这是我的问题:
我当前的线程默认使用 1024kb 创建,而我通常需要不到 50kb。
有没有办法通过编码来参数化它的大小?我只能找到一种通过菜单更改它的方法。
提前谢谢。
无法使用 TThread
指定堆栈大小。 TThread
的线程创建代码路径会导致调用CreateThread
API 以使用可执行文件的默认堆栈大小。默认情况下,对于Delphi可执行文件,这是1MB(如您所指出的)。尽管可以通过链接器选项(最大堆栈大小)或通过相应的编译器指令修改此值 (*),但这将对应用程序中使用默认堆栈的所有线程(主线程、第三方线程、...)产生影响。
如果可以不用TThread
,则可以使用 BeginThread
RTL 函数在CreationFlags
中包含STACK_SIZE_IS_A_RESERVATION
时使用您传递StackSize
。
(*) 将为线程堆栈保留的值,Te Waka o Pascal 有一篇文章展示了使用不同值的效果。