小弟初学多线程,希望大家多多指教,先谢了:)MyFunction是我写的函数,要建N个MyFunction线程来处理N个文件,请问不同的文件名怎么传给这个线程啊?我写的这个gtmp的值总是重复.
还有,在线程里怎么把数据现实在主线程文本框里啊?void CmtDlg::OnBnClickedOk()
{
....
for(i=0;i<=N;i++)
{
gtmp.Format("%d",i);
AfxBeginThread(MyFunction,>mp);
}
..........
}UINT MyFunction(LPVOID pParam)
{
...........
CString *tmp =(CString *)pParam;
CString temp=*tmp; CStdioFile file;
file.open(temp+".txt",CFile::modeRead));
...........
}
还有,在线程里怎么把数据现实在主线程文本框里啊?void CmtDlg::OnBnClickedOk()
{
....
for(i=0;i<=N;i++)
{
gtmp.Format("%d",i);
AfxBeginThread(MyFunction,>mp);
}
..........
}UINT MyFunction(LPVOID pParam)
{
...........
CString *tmp =(CString *)pParam;
CString temp=*tmp; CStdioFile file;
file.open(temp+".txt",CFile::modeRead));
...........
}
...
...
AfxBeginThread(MyFunction ,>mp[i])线程间通信,可以用临界区,发送消息来通知主更新
也可以在主线程中使用初始化事件并等待线程取得这个值后再创建下一个线程(但这样效率并不太好)
2.定义全局变量来保存你要显示的信息,在主线程显示就可以了(定时器或者发消息等)