关于TIdThreadComponent
的非常简单但重要的问题:
执行OnTerminate
和OnStopped
的线程 - 主线程还是工作线程?
当我处于这些事件中时,我可以安全地假设我在主线程中(并调用VCL属性和方法)吗?
更新:我想我可能会使用调试器,在尝试之后,看起来像OnStopped
在工作线程中,OnTerminate
在主线程内。另外一个好处是,调试器可以帮助确定执行启动/停止/控制线程的其他相关功能的位置,并减少可能的错误。
答案 0 :(得分:7)
你的观察是正确的。 OnStopped
在工作线程的上下文中触发。 OnTerminated
在主线程的上下文中触发。