多线程两个问题
1.用三个线程传3个文件和用一个线程传3个文件,哪个快?哪个好?
2.这是我写的一个线程的回调函数,:
C/C++ code
CTransferFileDlg* cfDlg=(CTransferFileDlg*)AfxGetApp()->m_pMainWnd;
for(int i=0;i<nCount;i++)
{
//从CListBox控件获取文件路径
strFilePath->GetText(i,strFileP);
//获取文件名
strFileName=strFileP.Right(strFileP.GetLength()-strFileP.ReverseFind('\\')-1);
//将文件传输到ftp服务器。m_pFtpConnection是静态成员变量。
m_pFtpConnection->PutFile(strFileP,strFileName);
//显示传输完成百分比
int nPer=100*(i+1)/nCount;
CString str;
str.Format("已完成:%d%%",nPer);
cfDlg->SetDlgItemText(IDC_PER,str);
}
当多次调用这个线程时,偶尔会报错。
但是找不到哪儿错了。。。帮忙看下哪儿异常。
------解决方案--------------------
1.快要视文件大小等问题而定,大文件肯定是多线程快,当文件小到一定程度,传输比线程本身的开销大不了多少时,基本差不多。 要说好肯定是单线程好,为毛?方便,安全,不用你去废一大堆心思管理。
2.报什么错?
------解决方案--------------------
我觉得网速在那你再快也不行啊!不过多线程肯定好一些。估计快不了多少(个人见解,可能不对)
------解决方案--------------------至于代码,菜鸟看不懂
------解决方案--------------------看具体情况
------解决方案--------------------
对于你4L的问题我建议先outputdebugstring定位代码到行,看看到底是哪的问题,另外建议你不要用cstringarry去存那些路径了,毕竟listbox里有,直接取出来就行,这样相对问题可能会少些。
8l: 一个是不要以全局的或者指针去传递,另外开辟内存然后拷贝传递。