vc程序
定义
CWinThread* socketthread;
socketthread = NULL;程序满足某种条件时
socketthread = AfxBeginThread(ClientThread, (LPVOID)fileinfo);
但是,有时候因为一些特殊原因,需要立即强行结束线程,
DWORD dwExitCode;
if (socketthread!=NULL)
{
GetExitCodeThread( socketthread->m_hThread, &dwExitCode );//dwExitCode 返回259
AfxEndThread( dwExitCode, TRUE );//程序崩溃
}
哪位知道代码问题在哪里?怎样修改?谢谢?
定义
CWinThread* socketthread;
socketthread = NULL;程序满足某种条件时
socketthread = AfxBeginThread(ClientThread, (LPVOID)fileinfo);
但是,有时候因为一些特殊原因,需要立即强行结束线程,
DWORD dwExitCode;
if (socketthread!=NULL)
{
GetExitCodeThread( socketthread->m_hThread, &dwExitCode );//dwExitCode 返回259
AfxEndThread( dwExitCode, TRUE );//程序崩溃
}
哪位知道代码问题在哪里?怎样修改?谢谢?
解决方案 »
- 请问下怎么实现工具栏的下拉三角箭头呢?
- 全网征求<<How debuggers work: algorithms,data structrues>>,1000分答谢(分次)!!
- 关于监控程序的问题。
- 编辑框问题~求助~
- CString有没有什么方法可以把字符串变成数字?
- 请问怎么做高精度除法?
- 写控件时晕了,想了一下午却想不出来。
- 各位老手新手,请问哪里有VC6教程下载,最好是HTML格式,为什么我找到的都是5.0的教程啊。分不多,感激多。
- 能不能在ADO中对dbf文件的记录号进行操作如果可以,SQL语句怎么写最后的27分了
- 如何成为一个真正的程序员?请教
- mfc对话框问题
- 如何用socket实现像qq那样接收多个文件?
要从外部线程强行终止另一线程,使用TerminateThread
我现在也在考虑从主程序传一个变量,socket根据这个变量判断自己是否应关闭,需关闭时用AfxEndThread(0)来关闭 ,但这又带来一个新的问题,就是我什么时候去判断这个变量?因为我的socket线程作的事情很多,这样做是不是需要我隔几行代码就要执行一下判断?
各位有没有好的办法?谢谢!
初学vc,问题比较幼稚,望各位高手帮忙,再次感谢!
TerminateThread会带来线程栈空间无法正常回收,消耗进程地址空间和系统内存,多次执行的结果必然会程序崩溃