TServerSocket 报错Access violation at address 004864A6 in module 'NetServer.exe'.解

TServerSocket 报错Access violation at address 004864A6 in module NetServer.exe.实在是找不到什么原

TServerSocket 报错Access violation at address 004864A6 in module 'NetServer.exe'.
实在是找不到什么原因报错。
这是获得线程的代码,一般超过20个线程 不知道什么原因就报错了。
void __fastcall TfrmNetServer::ssktHCYGetThread(TObject *Sender,
  TServerClientWinSocket *ClientSocket,
  TServerClientThread *&SocketThread)
{
try
{
  AnsiString str = ClientSocket->RemoteAddress+":"+IntToStr(ClientSocket->LocalPort);
  ChechIPExists(str,tvHCY);
  if(hcyNode)
  tvHCY->Items->AddChild(hcyNode,str);
  else
  {
  WrriteLog("晃车仪首节点不存在");
  return;
  }
  tvHCY->Items->Item[0]->Text = IntToStr(tvHCY->Items->Item[0]->Text.ToInt()+1);
  SrvThread *srvt = new SrvThread(true,ClientSocket);
  ConnThread ct;
  ct.paddr = srvt;
  ct.InFor = str;
  ConTrd.push_back(ct);
  srvt->Resume();
  SocketThread = srvt;
}
catch(...)
{
  WrriteLog("软件发生异常ssktHCYGetThread");
}
}


[解决办法]
看不出来,调试一下看看
[解决办法]
你不是写日子了吗?
是哪里出错的?
[解决办法]

探讨

结束线程用 ClientSocket->Close()和this->Terminate()是一样的吧?

[解决办法]
多个线程访问同一个对象,是通过临界区的吗?还是直接访问?直接访问会造成冲突的,或者使用sync函数,提升到主线程执行