AfxBeginThread参数传递

来源:互联网 发布:win7仿mac主题 编辑:程序博客网 时间:2024/06/05 11:02

实例代码

//相关定义

struct _tagValue{     int nNum1;     int nNum2;};typedef _tagValue Value;// CMFCApplicationThreadDlg 对话框UINT myThread(LPVOID lparam){Value * dlg=(Value *)(lparam);CString str;str.Format(TEXT("%d   %d "),dlg->nNum1,dlg->nNum2);AfxMessageBox(str);delete dlg;return 1;}

启动线程

Value * sValue=new Value;     sValue->nNum1 = 1;     sValue->nNum2 = 2; AfxBeginThread(myThread,sValue,THREAD_PRIORITY_HIGHEST);

1   线程参数不能是单纯的局部变量,否则,有可能在线程运行期间,局部变量被销毁。

2   使用指针new的时候,删除指针必须在线程完成以后进行,一般是在线程中完成删除。

3   使用全局变量也能完成,但就失去了参数的意义。



原创粉丝点击