我有一個循環,基本上把這種每隔幾秒鐘(超時後):從插座打破了選擇
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
}
所以基本上每隔幾秒鐘的時間(這是由電視指定),它重新激活監聽。
這是在線程B(不是主線程)上運行的。有時,我想立即從線程A(主線程)結束這個接受器循環,但似乎我必須等到時間間隔完成。
有沒有辦法破壞select函數從另一個線程所以線程B可以立即退出?
旁註:你可以削減if語句,只寫(while!)。 – 2010-03-21 10:40:22
雖然這將需要100%的CPU時間。絕對不能接受。 – kamziro 2010-03-21 11:55:54
哎呀,我一定有誤讀 – kamziro 2010-03-22 05:27:27