【发布时间】:2011-03-22 15:41:02
【问题描述】:
一个单独的线程创建一个 TidTCPClient 和一个 TTimer。 TTimer 设置为 3s,如果 TCPClient 未连接,则调用 TCPClient.Connect。
如果没有要连接的服务器,这将导致每 3 秒尝试连接一次。
主线程 (UI) 什么都不做,但是如果我用鼠标抓住窗口并在屏幕上缓慢移动它,它会每 3 秒卡住大约 2 秒,然后它会跳转到鼠标光标位置并再次跟随鼠标,直到发生下一次连接尝试。
换句话说,当 TCPClient 尝试连接时,主线程似乎被阻塞了。
为什么会发生这种情况,即使 TCPClient 在它的单独线程中?
【问题讨论】:
-
组件不存在于线程中,它们存在于内存中。代码在你调用它的线程中执行。
标签: delphi delphi-2009 indy10