IdHttpServer OnCommandGet 事件是否在线程内运行?
idHttpServer
OnCommandGet
是否在线程内运行?我猜 Indy 创建了一个线程并在其中调用这个事件,但我不太确定。
如果 Indy 这样做了,是否可以在此事件中设置一个 threadvar
并从我的 OnCommandGet
调用的方法中读取此 var?
Does the idHttpServer
OnCommandGet
run inside a thread? I guess Indy creates a thread and call this event inside it, but I am not really sure about it.
It Indy does that, is it ok to set a threadvar
inside this event and read this var from the methods my OnCommandGet
calls?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,它在 Indy 创建和管理的线程中运行。您可以通过调用
GetCurrentThreadID
来验证这一点将结果与全局MainThreadID
变量进行比较。尽管您可以使用线程变量,但请考虑将这些值作为简单的参数传递给您调用的函数。那么你就不会遇到全局变量的所有缺点。
Yes, it runs in a thread that Indy creates and manages. You can verify this by calling
GetCurrentThreadID
and comparing the result to the globalMainThreadID
variable.Although you can use threadvars, consider just passing those values as simple parameters to the functions you call instead. Then you don't have all the downsides of global variables.