[英]Background worker and progress bar not working properly
嗨,我試圖為我的加密和壓縮應用程序加載進度條。 我正在嘗試使用后台工作程序更新進度條的壓縮和加密時間,但是以某種方式,應用程序顯示了按鈕內包含的加密失敗消息框,而不是成功消息。
這是我按鈕的代碼
private void lockButton_Click(object sender, EventArgs e)
{
if (this.passwordtextBox.Text == "")
{
MessageBox.Show("Please enter a password!");
}
else if (this.retypeTextBox.Text == "")
{
MessageBox.Show("Please retype password!");
}
else if (this.passwordtextBox.Text == this.retypeTextBox.Text)
{
details = new Details();
details.SetPassword(this.passwordtextBox.Text);
if (this.EncryptionComboBox.Text == "AES")
{
details.SetEncryption(this.EncryptionComboBox.Text);
if (details.GetResult() == true)
{
// Start the background worker
backgroundWorker1.RunWorkerAsync();
}
if (details.GetResult() == true)
{
MessageBox.Show("Lock Success!");
}
else
{
MessageBox.Show("Lock Unsuccess! Please try again");
}
}
}
else
{
MessageBox.Show("The password and verified password does not match!");
}
}
這是我的后台工作人員代碼
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//declare lockcontroller to be used
LockController lControl = new LockController();
//run zipfile method and store result to fName
lControl.compress(ifile, details);
lControl.Encrypt(details);
lControl.LockCleaner(details);
int i = 100;
// Report progress to 'UI' thread
backgroundWorker1.ReportProgress(i);
// Simulate long task
System.Threading.Thread.Sleep(0000);
}
我想知道哪里出了問題。 進度欄和兩種加密均無法正常工作。
當執行此行時, backgroundWorker1.RunWorkerAsync();
它立即返回並執行下一行。 您需要為消息框訂閱RunWorkerCompleted事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.