TIdTCPServer 的事件们是线程性的。换句话说就是尽管它们不是线程类的一部分,它们是在 个线程内被执行的。这个细节十分重要。请确保你在编程前理解了这个细节。
可能这一开始有些令人困惑,事件为什么会看起来是窗体的一部分,结果却在个线程内执行。 然而它内部被这样构建以便于事件能像其他事件一样在设计时被创建,而不用创建一个定制 的类并重写方法。
每个客户端都被赋值自己的线程。使用那些线程的时候,TCP 服务器的事件(当创建时是作 为窗体或者数据模型的一部分)被从那些线程调用。这也就是说单个事件可能被从多个线程 调用许多次。这些事件会收到一个 AThread(XE10 中 AContext)参数,这参数声明了正调用事 件的线程。
线程性的事件比如服务器上的 OnConnect, OnExecute, 和 OnDisconnect。