我定义的线程函数
class CBthTestDlg : public CDialog
{
// Construction
public:
static UINT  MyThreadProc(LPVOID pParam);
......
线程启动如下:
CWinThread* DealAccept = AfxBeginThread(CBthTestDlg::MyThreadProc, (LPVOID)this);
线程的函数的实现
UINT CBthTestDlg::MyThreadProc(LPVOID pParam)
{
*P CBthTestDlg *pCServerDlg = (CBthTestDlg *) pParam;
SOCKET threadsock;
我把断点设在*p那,可是程序运行到那的时候就弹出对话框说所有的线程被挂起,不知道什么原因,哪个高手指点下。快郁闷死了

解决方案 »

  1.   


    你已经把 工作线程 函数定义为类的成员函数了,你还传那个参数干哈?AfxBeginThread(CBthTestDlg::MyThreadProc, (LPVOID)this);改为:AfxBeginThread(CBthTestDlg::MyThreadProc, 0);//////////////////////////////////线程中的这句 CBthTestDlg *pCServerDlg = (CBthTestDlg *) pParam;去掉,不要,没用,直接访问即可。还有,你的 *p 是啥东西啊?
      

  2.   

    zaodt的意见不对,静态成员不能访问类的非静态成员,因此得传this指针。楼主的问题没遇见过。
      

  3.   

    where did you call AfxBeginThread?