我在 Execute 中有这两个判断,早成我以为 Execute 并没有执行 if not AThread.Connection.Connected then exit; if not AThread.Connection.IOHandler.Readable() then exit;后来加入测试代码在这两个语句上面,才发现 Execute 会不停的执行。 to: alanhao 我是想保持当前在线的名单,所以,不想直接断开客户端连接。
if AThread.Terminated then exit; if not AThread.Connection.Connected then exit;//if not AThread.Connection.IOHandler.Readable() then这个判断不要了 // exit;
connect 没有断开就表示线程还在,比如你有100个TCP连接就会开100个线程,虽然没有发指令,但那100个线程仍然还是在运行的。只不过onexecute不执行
建议随时断开不活跃的线程。
if not AThread.Connection.Connected then
exit;
if not AThread.Connection.IOHandler.Readable() then
exit;后来加入测试代码在这两个语句上面,才发现 Execute 会不停的执行。
to: alanhao
我是想保持当前在线的名单,所以,不想直接断开客户端连接。
exit;
if not AThread.Connection.Connected then
exit;//if not AThread.Connection.IOHandler.Readable() then这个判断不要了
// exit;
IdThreadMgrPool是管理线程池,连接比较多的话,频繁的连接的话用这个比较好。原理嘛就看看帮助