关闭后重启线程的有关问题
关闭后重启线程的问题?
http://www.ccrun.com/article.asp?i=569&d=1w5p2y
以老妖这段代码为源码进行测试,修改了一些逻辑部分...
现在想实现的效果是关闭线程,修改Socket的属性,例如:修改端口号,IP地址,将TCP连接改成UDP上...
然后启动线程,
当按第二次打开 即进入如下的代码中进行删除线程
可运行到delete pThread 时
程序变成无响应...
请教大家,改如何解决!
------解决方案--------------------
如果TThread的FreeOnTerminate设置为true,
那么在pThread->Terminate()后是不用手工再delete的
------解决方案--------------------
pThread->Suspend();
线程挂起了。
收不到
pThread->Terminate()方法中对Terminated属性的修改。
不要挂起
------解决方案--------------------
pThread->Suspend();
这句的问题,同意楼上观点
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();
这句的问题,同意楼上观点