我使用fileStream.begain来完成异步读写,每次只读写一个文件,文件读写是递归完成的,拷贝大文件时要显示进度条(使用Control.begainInvoke),不显示进度条时,文件拷贝没有问题,但是显示进度条时就会出现无法访问已关闭文件的异常。
如有哪位大侠能指点一二,在下感激不尽.
ps:上传文件在浏览文件后提示打不开文件,不知道需要上传什么格式的文件

解决方案 »

  1.   

    多线程调用控件
    Control.begainInvoke
    不是 beginInvoke
    是Invoke递归写文件的时候最好把流放在全局环境···
      

  2.   


       delegate void SetFindListBox(string str,string value);
       void RefreshProcessBar(string str, string value)
            {
                if (pBar.InvokeRequired)
                {
                    SetFindListBox tmp = new SetFindListBox(RefreshProcessBar);
                    if (Convert.ToInt32(value) >= pBar.Minimum && Convert.ToInt32(value) <= pBar.Maximum)
                    pBar.Invoke(tmp, new Object[] { str, value });
                }
                else
                {
                    if (Convert.ToInt32(value) > pBar.Minimum && Convert.ToInt32(value) < pBar.Maximum)
                    pBar.Value = Convert.ToInt32(value);
                }
            }
    调用:
    RefreshProcessBar("", Convert.ToUInt32 (((double)searchPos.ToInt32() / (double)searchEnd.ToInt32())* 100).ToString ());