Hi,
ich habe hier eine Beschreibung gefunden die relative gut erklärt ist.
Quelle: vcware.de (leider nicht mehr on)
Ausschnitte aus der Beschreibung:
Spoiler anzeigen
Wie könnte man das in eine Klasse packen ? (DLL)
Da ich noch nie mit Invoke, Delegate usw... zu tun hatte, komme ich leider nicht weiter.
Hintergrund:
Ich möchte kleinere Aktionen auslagern.
- Einlesen meines FTP Verzeichnise
- Einlesen der Dateien im ausgewählten Verzeichnis
Wenn das in einem BackgroundWorker läuft, ist meine Form nicht blockiert.
Wenn ich das alles richtig gelesen und verstanden habe.
vielen dank
Bernd
ich habe hier eine Beschreibung gefunden die relative gut erklärt ist.
Quelle: vcware.de (leider nicht mehr on)
VB.NET-Quellcode
- Public Class Form1
- Public Delegate Sub ChangeLabelText(ByVal caption As String)
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
- Handles Button1.Click
- BackgroundWorker1.RunWorkerAsync()
- End Sub
- Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, _
- ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
- Me.Invoke(New ChangeLabelText(AddressOf Change), "hallo!")
- End Sub
- Public Sub Change(ByVal caption As String)
- Label1.Text = caption
- End Sub
- End Class
Ausschnitte aus der Beschreibung:
Ein Delegate-Sub zusammen mit der Invoke-Methode ist eine schöne Methode,
um auf Formelemente und -controls zugreifen zu können.
Beginnen wir mit einem kleinen Beispiel:
Ein Label auf der Form soll per Backgroundworker den Text ändern.
Beginnen wir mit einem modulweit deklarierten Delegate-Sub.
Das ganze funktioniert also über 3 Komponenten:
Den Delegate-Sub, den "delegateten" Sub und den Aufruf.
Leider lässt dieser Code keine variable Zuweisung des Textes zu.
Daher auch dafür noch ein Beispiel:
um auf Formelemente und -controls zugreifen zu können.
Beginnen wir mit einem kleinen Beispiel:
Ein Label auf der Form soll per Backgroundworker den Text ändern.
Beginnen wir mit einem modulweit deklarierten Delegate-Sub.
Das ganze funktioniert also über 3 Komponenten:
Den Delegate-Sub, den "delegateten" Sub und den Aufruf.
Leider lässt dieser Code keine variable Zuweisung des Textes zu.
Daher auch dafür noch ein Beispiel:
Wie könnte man das in eine Klasse packen ? (DLL)
Da ich noch nie mit Invoke, Delegate usw... zu tun hatte, komme ich leider nicht weiter.
Hintergrund:
Ich möchte kleinere Aktionen auslagern.
- Einlesen meines FTP Verzeichnise
- Einlesen der Dateien im ausgewählten Verzeichnis
Wenn das in einem BackgroundWorker läuft, ist meine Form nicht blockiert.
Wenn ich das alles richtig gelesen und verstanden habe.
vielen dank
Bernd