1

私はフォルダをアーカイブして指定された場所に保存する 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 イベント ラベルにもパーセンテージが表示されるはずですが、表示されません。どこが間違っているかを指摘または修正してください。

4

1 に答える 1