我有一个循环,基本上每隔几秒钟(超时后)就调用这个函数:
while(true){
if(finished)
return;
switch(select(FD_SETSIZE, &readfds, 0, 0, &tv)){
case SOCKET_ERROR : report bad stuff etc; return;
default : break;
}
// do stuff with the incoming connection
}
基本上,每隔几秒钟(由tv指定),它会重新激活监听。
这在B线程(不是主线程)上运行。有时我想从A线程(主线程)立即结束这个接受器循环,但似乎我必须等到时间间隔结束。
是否有一种方法可以从另一个线程中断选择功能,以便B线程可以立即退出?