MFC多线程
我是每次循环都创建线程而且都传入一个参数给线程,为什么有的时候数据会传不进去,传进去的有时候也是乱码,很不解!!! 多线程 mfc c++
[解决办法]
会不会是你在传递的是一个局部变量
传给线程后,这个局部变量离开作用域{}然后自动销毁了?
这样传递的线程参数就不存在了。
[解决办法]
AfxBeginThread后Sleep一下
或者用一个类似于 WaitForSingleObject的函数等待一下看看会不会有问题
比如
{
CString p;
AfxBeginThread(&p);
Sleep(3000) or WaitForSingleObject();
}
[解决办法]
Sleep也分位置的好不 你没看我故意把 {}写进去了吗
我是在{}里面Sleep 你是在外面 那时候p已经出了作用域了
[解决办法]
1 Sleep的位置不对
2 不应该用Sleep解决
[解决办法]
你在Sleep之前 你的p已经被销毁了
[解决办法]
你传的是个局部变量,
CString p;
p.Format("%s",WangYeList[n].c_str());
if (AfxBeginThread(_ChaThread11,&p)==NULL)
这就是造成乱码的后果,字符串的首地址已经在线程中找不到了.
[解决办法]