Советаю избавится от этой строчки.
Код:
//ждем подключения
while not Thread[id].Connect do Sleep(1);
//подключились
так как тут есть 2 проблемы.
1. Обращение к общим данным.
2. По сути бесконечный цикл. Если клиент не подключится.
тут тоже некрасивое решение уничтожать хендл потока находсь в потоке. Раз умеете пользоватся сообщениями так решите проблему через них ))
Код:
EnterCriticalSection(_cs);
CloseHandle(Thread[id].CH);
LeaveCriticalSection(_cs);