0

bgworker に問題があります。私が達成しようとしているのは、bgworker が zip ファイルをテキスト ボックスに展開する進行状況を報告することです。これが私が示したい方法です:
5%
10%
15%
20%
25%
など。

これは私がこれまでに得たものです:

int percentage;
percentage = count*100/array.Length;
worker.ReportProgress(percentage);

私のテキストボックス名はContentTextBox.

これは役に立つかもしれないコードの残りの部分です:

    private void UnpackBackgroundWorkerCompletedEvent(object sender, RunWorkerCompletedEventArgs e)
            {
                FileTextBox.Text = databaseName;
                ContentPanel.Visible = true;
                Text = "Check Database";

            }

            public void UnpackWorker(object sender, DoWorkEventArgs doWorkEventArgs)
            {
                if (FileTextBox.Text == "")
                {
                    MessageBox.Show("File textbox is empty");
                    return;
                }

                String fileName = FileTextBox.Text;
                if (!File.Exists(fileName))
                {
                    MessageBox.Show("File doesn't exist");
                    return;
                }

                Logger logger = new Logger(Path.ChangeExtension(FileTextBox.Text, ".log"), this, ContentTextBox);

                String status = "******** Unpacking zipfile '" + fileName + "' ";
                logger.Write("");
                logger.Write("********");
                logger.Write(status);
                logger.Write("********");

                string databaseFileName = Path.ChangeExtension(fileName, ".db");
                DatabaseUtils.RestoreDatabase(fileName, databaseFileName);
                logger.Write("Zipfile '" + fileName + "' unpacked to '" + databaseFileName + "'.");

                databaseName = databaseFileName;




            }

public void Run()
        {
            var unpackWorker = new BackgroundWorker();

            if (FileTextBox.Text.EndsWith(".zip"))
            {
                unpackWorker.DoWork += UnpackWorker;
                unpackWorker.RunWorkerAsync();
                unpackWorker.RunWorkerCompleted += UnpackBackgroundWorkerCompletedEvent;
            }
            else
            { MessageBox.Show("No zip selected")
            }

        }

編集 テキストボックスに書き込むには、 logger.Write() を使用する必要があります。これは、zip 解凍出力のログファイルを作成するためです。

事前にあなたの助け/アドバイスをありがとう

4

1 に答える 1