vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Wie funktioniert der Backgroundworker? 
Autor: ModeratorRalf Ehlert (Moderator)
Datum: 19.08.08 15:21

Hier ein Auszug aus dem erwähnten Projekt:

    Private Sub ImporterBackgroundWorker_DoWork(ByVal sender As System.Object, _
      ByVal e As System.ComponentModel.DoWorkEventArgs) Handles _
      importerBackgroundWorker.DoWork
        ' Anzahl der zu importierenden Daten holen
        Dim numberOfIDsToImport As Integer = Me.scanResults.Count
 
        ' BackgroundWorker aus sender-Parameter holen
        Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
 
        ' ...
 
        ' Für jeden zu importierenden Datensatz
        For i As Integer = 0 To numberOfIDsToImport - 1
            ' Überprüfen, ob Vorgang abgebrochen werden soll, ggf. abbrechen
            If worker.CancellationPending Then
                e.Cancel = True
                Exit For
            End If
 
            ' Daten importieren
            DataImporter.Import(Me.scanResults(i), 0 = i)
 
            ' Fortschritt berechnen und melden
            Dim percentage As Integer = CInt((100 * i) / numberOfIDsToImport)
            worker.ReportProgress(percentage, i + 1)
        Next
    End Sub
 
    Private Sub ImporterBackgroundWorker_ProgressChanged(ByVal sender As _
      System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) _
      Handles importerBackgroundWorker.ProgressChanged
        ' Fortschritt anzeigen
        Me.importProgressBar.Value = e.ProgressPercentage
        Me.importStatus.Text = String.Format("Importiert: {0}", e.UserState)
    End Sub
Bei DataImporter.Import() werden Daten extrahiert aus einer HTML-Seite und in eine Db via LINQ to SQL geschrieben. Das funktioniert wunderbar.

Wenn ich aber ein simples Projekt aufbaue, wo viele Wurzelwerte aufsummiert werden, dann muss ich nach dem ReportProgress() ein Application.DoEvents() setzen, sonst friert gelegentlich das UI ein. Warum das jetzt so ist, verstehe ich grad auch nicht. Und in der MSDN gibt es auch keine besonderen Hinweise...

Ralf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wie funktioniert der Backgroundworker?2.783Nix_Blicker17.08.08 20:51
Re: Wie funktioniert der Backgroundworker?2.098ModeratorRalf Ehlert17.08.08 21:02
Re: Wie funktioniert der Backgroundworker?2.021T1g0r17.08.08 21:03
Re: Wie funktioniert der Backgroundworker?2.014Nix_Blicker17.08.08 21:04
Re: Wie funktioniert der Backgroundworker?2.123Nix_Blicker19.08.08 11:15
Re: Wie funktioniert der Backgroundworker?1.956keco19.08.08 12:04
Re: Wie funktioniert der Backgroundworker?1.898Nix_Blicker19.08.08 13:22
Re: Wie funktioniert der Backgroundworker?1.914ModeratorRalf Ehlert19.08.08 13:41
Re: Wie funktioniert der Backgroundworker?1.886keco19.08.08 13:42
Re: Wie funktioniert der Backgroundworker?3.637Nix_Blicker19.08.08 13:53
Re: Wie funktioniert der Backgroundworker?2.238ModeratorRalf Ehlert19.08.08 14:04
Re: Wie funktioniert der Backgroundworker?2.150ModeratorRalf Ehlert19.08.08 14:08
Re: Wie funktioniert der Backgroundworker?1.975keco19.08.08 14:13
Re: Wie funktioniert der Backgroundworker?2.023ModeratorRalf Ehlert19.08.08 15:21
Re: Wie funktioniert der Backgroundworker?1.928keco19.08.08 15:51
Re: Wie funktioniert der Backgroundworker?1.914ModeratorRalf Ehlert19.08.08 17:20
Re: Wie funktioniert der Backgroundworker?1.931Maas19.08.08 13:57
Danke an alle!1.935Nix_Blicker19.08.08 15:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel