【问题标题】:Changing Delphi Thread Size on linecode在 linecode 上更改 Delphi 线程大小
【发布时间】:2014-02-21 13:35:08
【问题描述】:

这是我的问题:

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

提前致谢。

【问题讨论】:

  • 如果您使用BeginThread,则可以指定堆栈大小,并带有适当的CreationFlags。
  • 就是这样。感谢您的帮助!

标签: delphi delphi-2007


【解决方案1】:

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

如果您可以不使用TThread,则可以使用BeginThread RTL 函数让StackSize 在您将STACK_SIZE_IS_A_RESERVATION 包含在CreationFlags 中时使用。

(*) 为线程栈保留的值,Te Waka o Pascal 有一个article 显示使用不同值的效果。

【讨论】:

    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多