创建线程,让线程函数回调函数也像成员函数一样
2014-09-01 11:30
134 查看
// 这里只作最简单的提示 void CMfcDlg_StudyDlg::showTip(CString strTip) { AfxMessageBox(strTip); } struct ThreadData { void* _this; CString strName; }; DWORD WINAPI TestThreadProc(LPVOID lpParameter) { ThreadData* pThreadData = (ThreadData*)lpParameter; CMfcDlg_StudyDlg* _this = (CMfcDlg_StudyDlg*)pThreadData->_this; CString strTip = pThreadData->strName; // 只要要调用里加上 _this来访问, 基本上也类似于成员函数 // 说白了, 成员函数也不过是编译器默认添加了一个this指针而已 _this->showTip(strTip); delete lpParameter; // 如果创建线程成功, 这里也得把内存释放掉 // do other ... return 0; } void CMfcDlg_StudyDlg::OnBnClickedOk() { // TODO: Add your control notification handler code here ThreadData* pThreadData = new ThreadData; pThreadData->_this = this; pThreadData->strName = "test..."; DWORD dwThreadId; HANDLE hThread = CreateThread(NULL, 1024 * 1024 * 20, TestThreadProc, pThreadData, 0, &dwThreadId); if (hThread == NULL) { delete pThreadData; // 记得创建线程不能成功, 把内存释放掉 AfxMessageBox(TEXT("Create Thread Failed..")); } //OnOK(); }
相关文章推荐
- linux C++ 类成员函数中创建线程,且能访问类中其他成员变量
- 如何实现类的成员函数创建线程
- 如何实现类的成员函数创建线程
- 如何实现类的成员函数创建线程
- linux C++ 类成员函数中创建线程,且能访问类中其他成员变量
- 类的成员函数做线程的创建
- 多线程开发要点1:如何使用类的成员函数创建线程
- 如何实现利用类成员函数创建线程
- 如何实现类的成员函数创建线程
- 如何实现利用类成员函数创建线程
- 类成员函数创建线程
- 如何实现类成员函数创建线程
- 并发编程: c++11 thread(Func, Args...)利用类成员函数创建线程
- 类成员函数创建线程和MFC多线程UI更新问题
- 创建线程调用类成员函数的方法。
- 线程创建函数与类成员函数
- 多线程,成员函数内创建线程,线程函数调用类内的其他成员函数
- 在类中使用_beginthreadex函数创建线程并访问该类中的数据成员
- 如何实现类的成员函数创建线程
- 在类中使用类成员函数创建线程