我正在开发一个聊天服务器,我有一个问题.
如何std::thread安全停车?
像这样很容易出问题.
thread t(&func);
t.join();
Run Code Online (Sandbox Code Playgroud)
但是,如果func具有无限循环,则连接不起作用.
这是我的来源.
void CServerSocket::AcceptRun(boost::asio::io_service &iosrv)
{
while (true)
{
auto sock = std::make_shared<boost::asio::ip::tcp::socket>(iosrv);
m_Acceptor->accept(*sock);
m_SocketList.push_back(std::make_shared<CConnectionSocket>(this, sock));
}
}
Run Code Online (Sandbox Code Playgroud)
和
CServerSocket::~CServerSocket()
{
CLogManager::WriteLog("Stopping Server...");
m_Acceptor->close();
m_Acceptor.reset();
// m_AcceptThread.detach(); This is right?
CLogManager::WriteLog("Server Stoped!");
}
Run Code Online (Sandbox Code Playgroud)
我很纳闷.请帮我.谢谢.
我正在使用C#开发聊天程序,我使用ListBox管理昵称列表.但是,客户有昵称和州(在线,离开)
所以,为了管理状态,我想在ListBox中添加图像(在线 - 绿色圆圈,远离红色圆圈)(这是我的想法)
如何将图像添加到ListBox?请帮我.
谢谢.