两个线程类A,B,需要分别在对方定义一个类指针,如下:
//a.h
class B;
class A: Public CWinThread
{
B* m_pPeer;
....
}//b.h
class A;
class B: Public CWinThread
{
A* m_pPeer;
.......
}我该怎么给m_pPeer赋值?
//a.h
class B;
class A: Public CWinThread
{
B* m_pPeer;
....
}//b.h
class A;
class B: Public CWinThread
{
A* m_pPeer;
.......
}我该怎么给m_pPeer赋值?
(1) 如果B类对象构造时A类对象已存在,就非可以给B类定义一个构造函数:B(A* pA),从而达到初值化m_pPeer的目的。
(2) 如果上述条件不满足,则可以专门定义一个设置函数:void B::SetPointA(A* pA);
A,B两个线程类分别用
CWinThread *pThreadA=AfxBeginThread(RUNTIME_CLASS(A));
CWinThread *pThreadB=AfxBeginThread(RUNTIME_CLASS(B));
起两个线程。
这两个线程会相互发消息来触发一些操作。
为此我在A中定义一个B类的指针pB,在B中定义一个A类的指针pA,然后通过pB->PostThreadMessage()和pA->PostThreadMessage()相互发送消息。
但是我该怎么给pA,pB赋与A,B两个线程类的实例的指针?也就是怎么得到这个指针?
pTheradA->pB=pThreadB;
pThreadB->pA=pThreadA;
然后再Resume这两个线程就行了。你非这么要求,那就这么做吧!