Witam mam problem z wątkami. Używam do operacji na UserControl
i danych BackgroundWorker
. Po wykonaniu poniższego kodu:
private void BackgrounWorkerImport_DoWork(object sender, DoWorkEventArgs e)
{
int selected = 0, all = 0;
Invoke(new Action(() =>
{
selected = this.ComboBoxRow.SelectedIndex;
all = this.ComboBoxRow.Items.Count;
}));
for (int i = selected; i < all; i++)
{
this.ImportWorker.ReportProgress(i);
}
}
private void BackgrounWorkerImport_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
var data = this.ComboBoxRow.SelectedItem.ToString().Split(Convert.ToChar(this.ComboBoxSeparator.SelectedItem.ToString()));
SqlOperations.ExecProcedure("ImportProcedure", new SqlParameter[]
{
new SqlParameter("@Type", this.DataType),
new SqlParameter("@Year", data[0].Split('-')[0]),
new SqlParameter("@DataValue", data[1])
});
this.ProgressBarImport.PerformStep();
}
private void BackgrounWorkerImport_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.LabelTitle.Text = this.LabelTitle.Text + " - Done!";
}
Powyższy kod zwraca następujący błąd: