multithreading - IdHttpServer OnCommandGet 事件是否在线程内运行?

标签 multithreading delphi indy

idHttpServer OnCommandGet 是否在线程内运行?我猜 Indy 创建了一个线程并在其中调用此事件,但我对此不太确定。

Indy 做到了这一点,可以在此事件中设置一个 threadvar 并从我的 OnCommandGet 调用的方法中读取此 var 吗?

最佳答案

是的,它在 Indy 创建和管理的线程中运行。您可以通过调用GetCurrentThreadID来验证这一点并将结果与​​全局 MainThreadID 进行比较变量。

虽然您可以使用线程变量,但请考虑将这些值作为简单的参数传递给您调用的函数。那么你就不会遇到全局变量的所有缺点。

关于multithreading - IdHttpServer OnCommandGet 事件是否在线程内运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888290/

相关文章:

德尔福:Socket.ReadBytes();与 IOHandler.ReadBytes()

Java ExecutorService 运行线程两次

python - 线程化 BaseHTTPServer,每个请求一个线程

delphi - 是否有一种无需尝试就可以有效地对程序进行防弹的方法?

delphi - 如何使用 Indy 发送 DELETE 请求?

linux - Indy 10.6 在具有管理员权限的 Linux 系统上使用 tcpserver 在客户端断开连接时抛出 Gtk-WARNING

java - Java 中 Go channel 的等价物

java - Spring运行独立线程

delphi - 文件不以 '%PDF-' 开头

delphi - 为什么方法退出时没有正确释放这个接口(interface)?