线程的参数传递?

redfish1980 2006-12-11 05:14:46
小弟做了一个用户界面线程,用的是继承CWinThread的方法,在主线程中启动这个用户界面线程的时候,怎样传递参数给这个用户界面线程?
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
redfish1980 2006-12-11
  • 打赏
  • 举报
回复
嗯,谢谢laiyiling(陌生人),你的方法应该有效,其他兄弟看清楚了,是用户界面线程,不是工作线程。
Kudeet 2006-12-11
  • 打赏
  • 举报
回复
http://www.flounder.com/uithreads.htm

//先让创建的线程暂停,然后设置类的成员变量,然后再恢复线程
CMyThread * thread = AfxBeginThread(RUNTIME_CLASS(CMyThread),
THREAD_PRIORITY_NORMAL,
0, // stack size
CREATE_SUSPENDED);
thread->m_Whatever = ...;
thread->m_OtherThing = ...;
thread->ResumeThread();
uoice 2006-12-11
  • 打赏
  • 举报
回复
比如你的继承的线程叫CMyThread, 直接在里面申明成员函数和成员变量就行了。创建的时候先暂停,然后传参数,再启动线程。
stevphen 2006-12-11
  • 打赏
  • 举报
回复
AfxBeginThread里第二个参数就可以指定要传入的参数。
myfriend023 2006-12-11
  • 打赏
  • 举报
回复
UINT MyThreadProc( LPVOID pParam )
{
CMyObject* pObject = (CMyObject*)pParam;

if (pObject == NULL ||
!pObject->IsKindOf(RUNTIME_CLASS(CMyObject)))
return 1; // if pObject is not valid

// do something with 'pObject'

return 0; // thread completed successfully
}

// inside a different function in the program

pNewObject = new CMyObject;
AfxBeginThread(MyThreadProc, pNewObject);

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧