|
在CMyDialog中:
CSocket m_pSocket;
CMyThread m_pThread;
在CMyDialog::InitDialog()中
m_pSocket=new CSocket();
m_pSocket->Create(MYPORT);
...Socket 的生成是完全没有问题的
m_pThread=AfxBeginThread(RUNTIME_CLASS(CMyThread)); Thread的建立也完全没有问题
在CMyDialog::OnMyButtonClick()中
m_pThread->PostThreadMessage(MYMESSAGE);
在CMyThread消息循环中:
case MYMESSAGE:
(这是在Thread初始化时生成的CMyDlg类全局变量)
m_pDlg->RecvData();
之前的所有过程都没有问题:
但在m_pThread执行CMyDlg::RecvData()时
CMyDlg::RecvData(){
m_pSocket->send(...)这里的m_pSocket==0,而不经过线程直接用this->RecvData()的话没有任何问题,为什么?
CSocket类是否对其生成线程有依赖关系?
|
|