加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:46:20 所属栏目:大数据 来源:网络整理
导读:这是我的问题: 我当前的线程默认创建为1024kb,当我通常需要少于50kb时. 有没有办法通过编码来参数化它的大小?我只能通过菜单找到改变它的方法. 提前致谢. 解决方法 使用TThread无法指定堆栈大小. TThread的线程创建代码路径导致CreateThread API被调用以使
这是我的问题:

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

提前致谢.

解决方法

使用TThread无法指定堆栈大小. TThread的线程创建代码路径导致CreateThread API被调用以使用可执行文件的默认堆栈大小.对于Delphi可执行文件,这默认为1MB(如您所述).虽然您可以通过链接器选项( maximum stack size)或相应的 compiler directive修改此值(*),但这将对应用程序中使用默认堆栈的所有线程产生影响(主要,第三方TThread,…).

如果你可以不使用TThread,你可以使用BeginThread RTL函数让你传递它的StackSize,以便在CreationFlags中包含STACK_SIZE_IS_A_RESERVATION时使用它.

(*)将为线程堆栈保留的值,Te Waka o Pascal具有显示使用不同值的效果的article.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读