首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2012-03-07 
关闭后重启线程的问题?http://www.ccrun.com/article.asp?i569&d1w5p2y以老妖这段代码为源码进行测试,修

关闭后重启线程的问题?
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(); 
这句的问题,同意楼上观点

热点排行