【发布时间】:2014-03-05 09:27:44
【问题描述】:
有一个mfc远程桌面应用程序,结构是用proxyserver写的。
如何将此结构转换为多线程?
struct sAccept
{
CTCPSocket * m_pAccept;
CString m_csAlias;
CString m_csIp;
BOOL m_bRDV;
bool operator < (const sAccept & rhs) const {return *m_pAccept < *(rhs.m_pAccept);}
std::set<CString> m_Viewers;
};
【问题讨论】:
-
结构不能是多线程的,但程序可以。你需要提供更多关于你的程序的细节,你正在做什么,你想要完成什么,以及为什么你认为多线程可能是好的。
-
感谢您的回复,我不能将结构指针放在线程中吗?我的应用程序桌面代理服务器是单线程的,我想让它成为多线程的。当并发数据传输应用程序期间的流量更多时不响应状态。为了避免 exe 挂起,想让它成为多线程的。如果我把这个结构指针放在线程中,它会有所帮助,而不是 socket 类
-
多线程需要在辅助线程中执行函数。数据和指针不会使任何东西成为多线程的。
-
// 将数据包发送到所有连接的客户端 void Crp::SendToAllConnectedClients(CPacket & Packet) { std::vector
vAliases; std::set ::iterator itAccept = m_setAccept.begin(); for (;itAccept != m_setAccept.end();++itAccept) { // 定位服务器 if (!itAccept->m_bRDV && Packet.m_csServer == itAccept->m_csAlias) { // 定位此服务器的查看者 std ::set ::iterator itView = itAccept->m_Viewers.begin(); for (;itView != itAccept->m_Viewers.end();++itView) { -
@user3347271 不要在 cmets 中发布其他代码。相反,请更新您的问题以反映更新或说明。
标签: c++ multithreading mfc