Probleme mit Threading / Invoke

ixp_jkr

Grünschnabel
Hallo zusammen,

ich habe folgenden Code:

C#-Code:
Code:
private delegate void backupDelegate(ListView lv);
private Thread thread = null;



C#-Code:
Code:
private void tsbBackupStart_Click(object sender, EventArgs e)
{
  this.progressBar.Value = 0;
  this.tsbCancelBackup.Enabled = true;
  this.thread = new Thread(new ThreadStart(startBackup));
  this.thread.Start();
}



C#-Code:
Code:
private void startBackup()
{
  Invoke(new backupDelegate(backup), new object[] { this.listView });
}



C#-Code:
Code:
private void backup(ListView lv)
{
  try
  {
    this.progressBar.Maximum = lv.Items.Count;
    this.progressBar.Value++
    ...
    ...
  }
  catch (Exception exc)
  {
    MessageBox.Show(exc.Message);
  }
}



Dieser Code funktioniert soweit ganz gut.
In der Methode "backup(ListView lv)" verschiebe ich ein paar Dateien und aktualisiere eine ProgressBar (progressBar) auf meiner Form.

Aber: Ich starte das ganze über eine Schaltfläche in einer Toolbar. Jetzt habe ich eine zweite Schaltfläche zum Abbrechen des Vorgangs aufgenommen.
Es ist jetzt leider nicht möglich auf diese Schaltfläche zu klicken, da scheinbar die Form "einfriert", obwohl die ProgressBar und auch das ListView verändert werden können.

Habe ich etwas übersehen?
Kann mir jemand bei meinem Problem helfen?

Falls es hilft, ich verwende .Net 2.0...


Vielen Dank im Voraus,
und viele Grüße
 
Zurück