关闭后重启线程的有关问题

关闭后重启线程的问题?
http://www.ccrun.com/article.asp?i=569&d=1w5p2y
以老妖这段代码为源码进行测试,修改了一些逻辑部分...

现在想实现的效果是关闭线程,修改Socket的属性,例如:修改端口号,IP地址,将TCP连接改成UDP上...
然后启动线程,

当按第二次打开 即进入如下的代码中进行删除线程
C/C++ code

void __fastcall TPSTNForm::Button2Click(TObject *Sender)
{

  if(pThread)
  {
      //shutdown(pThread->m_Socket,2);
      closesocket(pThread->m_Socket);
      pThread->Suspend();
      pThread->Terminate();
      delete pThread;
      pThread=0;
   }


可运行到delete pThread 时
程序变成无响应...
请教大家,改如何解决!

------解决方案--------------------
如果TThread的FreeOnTerminate设置为true,
那么在pThread->Terminate()后是不用手工再delete的
------解决方案--------------------
pThread->Suspend();
线程挂起了。
收不到
pThread->Terminate()方法中对Terminated属性的修改。
不要挂起
------解决方案--------------------
pThread->Suspend(); 
这句的问题,同意楼上观点