vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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: Warteschleife für Backgroundworker 
Autor: Bismosa
Datum: 05.02.11 22:52

Hallo!

Hmmm...dafür bin ich wohl (noch) zu blöd. Ich verstehe es irgendwie nicht.

Ich konnte es jetzt so lösen:
Public Class Form1
 
    Public Var(10) As String
    Public var2(10) As String
 
 
    Private Sub DataGridView1_CellLeave(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.DataGridViewCellEventArgs) Handles _
      DataGridView1.CellLeave
 
    End Sub
 
    Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles _
      DataGridView1.CellValidating
        'Wenn die Zeile nicht bearbeitet wurde verlassen
        If Not DataGridView1.IsCurrentCellDirty Then
            Exit Sub
        End If
 
        For i = 0 To Var.Count - 1
            If Var(i) Is Nothing Then
                Var(i) = e.FormattedValue
                var2(i) = DataGridView1.CurrentRow.Index
                'Wenn mehr als 10 Einträge zusammenkommen:
                If i = Var.Count - 1 Then
                    ReDim Preserve Var(Var.Count + 1)
                    ReDim Preserve var2(Var.Count + 1)
                End If
                Exit For
            End If
        Next
 
        If Not BackgroundWorker1.IsBusy = True Then
            BackgroundWorker1.RunWorkerAsync()
        End If
 
    End Sub
 
    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e _
      As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim Wert As String = Nothing
        Dim Zeile As String = Nothing
 
Start:
        For i = 0 To Var.Count - 1
            If Not Var(i) = Nothing Then
                Wert = Var(i)
                Zeile = var2(i)
                Var(i) = Nothing
                var2(i) = Nothing
                Exit For
            End If
        Next
 
        If Wert = Nothing Then
            Exit Sub
        End If
 
 
        System.Threading.Thread.Sleep(1000)
 
        DataGridView1.Rows(Zeile).Cells(1).Value = "Fertig"
 
        GoTo Start
 
    End Sub
End Class
Ich denke mal das ist wirklich durch die Brust ins Auge...aber es funktioniert. Die Reihenfolge in der das ganze abgearbeitet wird stimmt zwar nicht mit der Eingabereihenfolge...dafür braucht es nicht so viel Speicher.
Ich habe auch gleich den Array mit 10 Feldern vorgesehen, da ich denke das dies eine gute Hausnummer ist. Ich hatte mal gelesen, das ein Redim auch ein ziemlicher Leistungskiller ist. Nur im Fall eines gebrauchens wird dies vorgenommen.

Gruß
Bismosa
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Warteschleife für Backgroundworker1.288Bismosa05.02.11 18:10
Re: Warteschleife für Backgroundworker832Christian2505.02.11 18:30
Re: Warteschleife für Backgroundworker929Bismosa05.02.11 19:46
Re: Warteschleife für Backgroundworker1.105ModeratorRalfE05.02.11 20:44
Re: Warteschleife für Backgroundworker822Bismosa05.02.11 20:51
Re: Warteschleife für Backgroundworker788ModeratorDaveS05.02.11 21:24
Re: Warteschleife für Backgroundworker1.441Bismosa05.02.11 22:52

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