0
我有一些問題與我bgworker。我試圖完成的是我的bgworker報告解壓zip文件到我的文本框的進度。 這是我想要顯示它:
5%
10%
15%
20%
25%
等。Backgroundworker.Report進度問題
這是從來就走到這一步:
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() ,因爲我做了拉鍊的日誌文件開箱輸出。
感謝您的幫助/諮詢提前
你說你有問題,但你沒有指定這些問題是什麼。 –
我試圖做的是在我的文本框中顯示百分比。 –
'DatabaseUtils.RestoreDatabase(fileName,databaseFileName);'應該被修改來報告進度。 –