私はフォルダをアーカイブして指定された場所に保存する C# と Winforms を使用してアプリを作成しています。フォルダをアーカイブするために、フォルダ パスを入力として取り、zip アーカイブを生成するBackgroundWorkerがあります。指定された場所、再びファイルが十分に大きく、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 イベント ラベルにもパーセンテージが表示されるはずですが、表示されません。どこが間違っているかを指摘または修正してください。