|
3驿站币
HANDLE thread[2] = { 0 };
void start_server() {
thread[0] = CreateThread(NULL, 0, work_WSA_s1, 0, 0, 0);
thread[1] = CreateThread(NULL, 0, work_WSA_s1, 0, 0, 0);
}
void close_server() {
PostQueuedCompletionStatus(s_iocp, 0, -1, 0);
PostQueuedCompletionStatus(s_iocp, 0, -1, 0);
PostQueuedCompletionStatus(f_iocp, 0, -1, 0);
DWORD a=0;
a = WaitForMultipleObjects(2, thread, TRUE, INFINITE);
for (int i = 0; i < sizeof(thread) / 4; i++)
{
CloseHandle(thread[i]);//------------------------这个位置debug调试下 中断 debug和Release的exe和Release的调试没出现0xC0000008: An invalid handle was specified。(句柄无效 ) 。选择忽略和继续程序也不崩 查了网上有些用了findclose 但是我没用其他的系统对象就线程句柄
thread[i] = 0;
}
WaitForMultipleObjects 返回值a=4294967295 (-1) 结果是没有等待线程结束就往下执行for (int i = 0; i < sizeof(thread) / 4; i++)
改用 WaitForSingleObject 就没问题 。 删除掉CloseHandle(thread[i]) 也不中断 但是 系统对象没发关掉
找了好些网上资料没找到原因 求助各位大佬?
|
上一篇: C++第五课问题。下一篇: 大佬们 C++零基础入门教程的课后的小作业的答案在哪 有大佬知道吗
|