日期:2014-05-19  浏览次数:20865 次

哪位好心的大哥帮我解决一下多线程文件操作的问题,附代码。(2)
还是上午的那个问题,后来变了一下不行了。但那个问题已经结帖了,所以重发一贴请教。本人初学C#,比较菜,往高手多多指点:
上个问题就不贴了,地址在http://community.csdn.net/Expert/TopicView3.asp?id=5633807
现在改成:
private   void   bnCopyFilesSecret_Click(object   sender,   EventArgs   e)
                {
                        DialogResult   drResult   =   fbdOpenFolder.ShowDialog();
                        if   (drResult   ==   DialogResult.OK)
                        {
                                foreach   (DataGridViewRow   dgvSelectedRow   in   dgvSecretResults.SelectedRows)
                                {
                                        alArrayPath.Add(dgvSelectedRow.Cells[2].Value);
                                        alArrayName.Add(dgvSelectedRow.Cells[1].Value);
                                }
                                Thread   tdThread   =   new   Thread(new   ThreadStart(fnCopyFiles));
                                tdThread.ApartmentState   =   ApartmentState.STA;
                                tdThread.Start();
                        }
                }

                private   void   fnCopyFiles()
                {
                        CFileOperation.fnCopyFiles(alArrayPath,   alArrayName,fbdOpenFolder.SelectedPath,lbProcessInfoSecret);

                }
将下面那些代码封装成了一个CFileOperate类,结构如下:
public   void   fnCopyFiles(ArrayList   alPath,   ArrayList   alName,   string   szDestinationPath,   Label   lbLabelProcessShow)
                {

                        for   (int   i   =   0;   i   <   alPath.Count;   i++)
                        {
                                if   (alPath[i]   !=   null)
                                {