【发布时间】:2011-05-20 05:49:43
【问题描述】:
我创建了一个线程来接收阻塞套接字,它一直等到数据包到达。但是,当我尝试断开与主线程的连接时,线程之间会出现竞争条件,从而导致错误。
这里的切换发生在线程之间的第 5 行,而没有真正完成断开调用。
void Disconnect() {
if(isConnected) {
if (closesocket(sockClient) != SOCKET_ERROR) {
isConnected = false;
}
}
}
我应该如何避免开关并优雅地让它完成断开呼叫?
【问题讨论】:
标签: c++ windows multithreading tcp