我正在使用 C# 和 Winforms 制作应用程序,将文件夹存档并保存到指定位置,对于存档文件夹,我有一个BackgroundWorker,它将文件夹路径作为输入并生成一个 zip 存档。现在下一步需要将文件移动到指定的位置,再次因为文件足够大并且可以挂起 UI 线程我将代码移动到另一个名为FileMove的BackgroundWorker ,除了FileMove没有报告任何进度之外,一切正常,这是我在归档后立即调用的函数结束了;
private void FileMove_DoWork(object sender, DoWorkEventArgs e)
{
label3.Text = "Saving file,please wait...";
File.Move(temppath + @"\Output.jpg", savefilename);
}
private void FileMove_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label3.Text = "Saving file,please wait... " + e.ProgressPercentage.ToString(); //This should show Progress Percentage but it doesn't.
}
private void FileMove_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label3.Text = ("The folder has been successfully hidden.");
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
this.ControlBox = true;
}
我面临的问题是,一旦文件移动开始label3显示“正在保存文件,请稍候......”并且在很长一段时间后(因为我正在压缩 900-1000 MB)它显示“文件夹已成功隐藏.".During ProgressChanged 事件标签也应该显示百分比,但它没有。请指出或纠正我出错的地方。任何帮助将不胜感激。