【发布时间】:2011-08-18 19:11:27
【问题描述】:
idHttpServer OnCommandGet 是否在线程内运行?我猜 Indy 会创建一个线程并在其中调用这个事件,但我不太确定。
Indy 这样做了,是否可以在此事件中设置 threadvar 并从我的 OnCommandGet 调用的方法中读取此变量?
【问题讨论】:
标签: multithreading delphi indy
idHttpServer OnCommandGet 是否在线程内运行?我猜 Indy 会创建一个线程并在其中调用这个事件,但我不太确定。
Indy 这样做了,是否可以在此事件中设置 threadvar 并从我的 OnCommandGet 调用的方法中读取此变量?
【问题讨论】:
标签: multithreading delphi indy
是的,它在 Indy 创建和管理的线程中运行。您可以通过调用GetCurrentThreadID 并将结果与全局MainThreadID 变量进行比较来验证这一点。
虽然您可以使用线程变量,但请考虑将这些值作为简单的参数传递给您调用的函数。那么你就没有全局变量的所有缺点了。
【讨论】: