hvala na pomoci, odradio sam na sledeci nacin i treba mi vase misljnje:
Code:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
OleDbCommand cmd = new OleDbCommand("SELECT zavrseno,tema,ime,ime_oca,prezime,(select rj from radnaj where task.rj = radnaj.id)as 'rj',datum,vrijeme,alarm,id FROM task", clsConnection.CN);
dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
count = dt.Rows.Count;
int i = 0;
foreach(DataRow row in dt.Rows)
{
if (backgroundWorker1.CancellationPending)
{
e.Cancel = true;
return;
}
backgroundWorker1.ReportProgress(i);
//fDoc je forma u kojoj se nalazi funkcija FillData koja dodaje novi
//row u DataGridView potom inkrementira "i" i vraca vrijednost
i = fDoc.FillData(i, (bool)row[0], row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString(),row[5].ToString(),row[6].ToString(),row[7].ToString(), (bool)row[8],(int)row[9]);
}
}
....
....
....
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.progressBarItem1.Maximum = count - 1;
this.progressBarItem1.Value = e.ProgressPercentage;
}
.....
.....
.....
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
backgroundWorker1.CancelAsync();
this.progressBarItem1.Value = 0;
this.labelStatus.Text = " Broj taskova: " +count.ToString();
}
Posto mi je fDoc forma koja se otvara unutar forme frmMain (MDI), kada otvorim vise formi fDoc, sta mi on u pozadini odradjuje, da li za svaku formu otvara novi Thread do konekcije, da li je pozeljno na ovaj nacin to odradjivati ili nekako drugacije, da li su mozda moguce neke greske ako se pojavi vise rekorda itd.
Sve ovo pitam radi ispravnosti koda, odnosno programa i sto nisam nasao neko objasnjenje kako i sta
BackgroundWorker radi...