我正在嘗試更新主窗體上的進度條,並在不同的類中完成工作。例如:C#,使用不同類別的後臺工作人員更新進度欄
private void transfer_Click(object sender, EventArgs e)
{
Guid aspnetUserId = Guid.Parse(System.Configuration.ConfigurationSettings.AppSettings["ASPNetUserID"]);
WC1toWC2Transfer transfer = new WC1toWC2Transfer(aspnetUserId);
backgroundWorker1.RunWorkerAsync(transfer);
}
然後在後臺方法實際上調用方法:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
WC1toWC2Transfer transfer = e.Argument as WC1toWC2Transfer;
transfer.WC1ToWC2EmployerTransfer(log, wc1ConnStr, wc2ConnStr, progressBar1);
}
在WC1ToWC2EmployerTransfer方法,我設置了進度條的最大值和更新值每次的東西轉移到在這個方法中的數據庫,但是當我這樣做時沒有任何反應。在數據庫中運行存儲過程的方法中有代碼,但只要它碰到那部分代碼,它就停止調試,我必須再次運行該過程。
我在這裏做錯了什麼?我是否需要重寫我擁有的所以實際方法是以主要形式存在,而不是在不同的班級中?我是一名初級開發人員(幾個月前剛開始),所以如果我正在做一些明顯錯誤的事情,或者我沒有足夠好地解釋這件事,請原諒我。
任何幫助將不勝感激。
不確定這是關於什麼,但你一定要排除故障「停止調試」。 BackgroundWorker吞下異常並將它們傳遞給具有e.Error屬性的RunworkerCompleted事件處理程序。一些你不想忽視的東西。最好的方法是不要忽略它,使用Debug + Exceptions,爲CLR異常勾選Thrown複選框。 –