一個單獨的線程創建一個TidTCPClient和一個TTimer。 TTimer設置爲3秒,如果TCPClient未連接,則它調用TCPClient.Connect。
如果沒有要連接的服務器,則會每3秒嘗試連接一次。爲什麼單獨線程中的TidTCPClient阻塞主線程?
主線程(UI)什麼都不做,但如果我用鼠標抓住窗口並緩慢地在屏幕上移動它,它會每3秒鐘停留約2秒鐘,然後跳轉到鼠標光標位置並再次跟隨鼠標,直到下一次連接嘗試發生。
換句話說,當TCPClient嘗試連接時,主線程似乎被阻塞。
爲什麼會發生這種情況,即使TCPClient位於單獨的線程中?
組件在線程中不存在,它們存在於內存中。代碼在您調用它的線程中執行。 – 2011-03-22 17:20:56