gpt4 book ai didi

windows - 具有常见 OnTerminate 行为的 TThread

转载 作者:可可西里 更新时间:2023-11-01 10:56:13 28 4
gpt4 key购买 nike

我正在阅读这篇几乎解决了我的问题的帖子,因为没有人回答我的评论我决定提出一个问题:

Original Post that almost answer my question

正如我在那里问的那样:

  • 既然有可能多个线程共享同一个 OnTerminate 事件,那么它们也有可能同时完成吗?
  • 如果是这样,会发生什么?对 OnTerminate 方法的调用将被操作系统“排队”?换句话说,如果使用 MainThread 属性,代码是否可以避免重入?

最佳答案

It is possible Multiple threads share the same OnTerminate Event

是的,就像the other question的答案一样给你看。

and finish at the same time?

线程可以同时完成它们的工作,但默认情况下不会同时调用 OnTerminate 事件处理程序。这是因为 OnTerminate 事件处理程序是由 TThread 使用对 TThread.Synchronize() 的内部调用触发的,因此多个线程触发它们的 OnTerminate 同时发生的事件不会相互重叠。要更改该行为(大多数人不会这样做),您必须覆盖虚拟 TThread.DoTerminate() 方法以直接手动调用 OnTerminate 事件处理程序而不调用TThread.Synchronize() 首先。

关于windows - 具有常见 OnTerminate 行为的 TThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17866669/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com