cn_list是一个结构
CreateThread(0,0,(LPTHREAD_START_ROUTINE)update_user_status,
(void*)cn_list,0,&threadID);为什么我向线程传递了参数后,在线程里提不出来呢?
UINT update_user_status(LPVOID param)
{ CClientDlg* dlg_r=(CClientDlg*)AfxGetMainWnd();;
CListCtrl* plist=(CListCtrl*) dlg_r->GetDlgItem(IDC_LIST1); CN_list * cl=(CN_list *)¶m;
CString id,err;
id.Format("%s",cl->str); //id应该是"ssss"
return 0;
}
CreateThread(0,0,(LPTHREAD_START_ROUTINE)update_user_status,
(void*)cn_list,0,&threadID);为什么我向线程传递了参数后,在线程里提不出来呢?
UINT update_user_status(LPVOID param)
{ CClientDlg* dlg_r=(CClientDlg*)AfxGetMainWnd();;
CListCtrl* plist=(CListCtrl*) dlg_r->GetDlgItem(IDC_LIST1); CN_list * cl=(CN_list *)¶m;
CString id,err;
id.Format("%s",cl->str); //id应该是"ssss"
return 0;
}
CN_list * cl=(CN_list *)¶m;
有问题
另外还应该注意一点cn_list应该是一个全局变量或者在堆中分配的内存,如用malloc或者new分配的
(void*)cn_list,0,&threadID);
===============================
CreateThread(0,0,(LPTHREAD_START_ROUTINE)update_user_status,
(void*)this,0,&threadID);CClientDlg* dlg_r=(CClientDlg*)AfxGetMainWnd();
================================
CClientDlg* dlg_r=(CClientDlg*)param;
另外,创建线程不要用 CreateThread() 函数,
有 MFC 的AfxBeginTread ()
或者 c 库的函数, 具体参考MSDN 或者 〈Windows 核心编程〉