Langes Befüllen eines Datatables verarbeiten

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    Langes Befüllen eines Datatables verarbeiten

    Hallo liebe Programmierer,

    Ich stehe vor folgenden Problem. Ich möchte ein Datatable aus einem Dataset mit Daten aus einer Datenbank befüllen. Das Füllen per se ist kein problem. Da es sich jedoch um sehr viele Daten handelt, dauert es ca. 5 Sekunden. Nun meine Frage: Kann der User während dieser 5 Sekunden an der Form arbeiten, bzw. ist es möglich die Datatable im Hintergrund zu befüllen?


    MFG Euer Steak
    Das sollte mit Threading alles machbar sein.
    Tipp am Rande: das Füllen des DGV mit
    DataGridView1.SuspendLayout()
    und
    DataGridView1.ResumeLayout()
    kapseln, das kann das Füllen exorbitant beschleunigen.
    Mit etwas Glück entfällt dann jede weitere Maßnahme weil schnell genug.
    An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!
    Hey Rainman erstma danke für deine Antwort. Ich habe nun versucht das Problem folgendermaßen zu lösen.

    VB.NET-Quellcode

    1. Dim neuerthread As System.Threading.Thread
    2. neuerthread = New System.Threading.Thread(AddressOf Me.load_eepa_pp)
    3. neuerThread.Start() 'Vorgang starten


    In Me.load_eepa_pp rufe ich lediglich über einen TableAdapter den Fill-Befehl auf. Jedoch hängt sich das Programm komplett auf, sobald ich das Panel mit dem DGV in den Vordergrund rufe..

    Hast du vielleicht eine Idee woran das liegen könnte?
    Also manche Leute versteh ich nicht.
    Rainman gibt dir einen hochinteressanten, und überaus einfach umzusetzenden Tip, du bedankst dich, und kommst mit der nächsten Frage mit genau dem, was man durch Rainmans Tip evtl. hätte vermeiden können.

    Probier doch bitte!! erstmal den Tipp, der Threading vlt. überflüssig macht, bevor du dich ins Threading verzettelst, denn letzteres zieht einen Rattenschwanz an Problemen nach sich.

    Falls du den Tipp nicht umgesetzt kriegst, poste am besten ganze Methoden - bei aus dem Zusammenhang gerissenen Zeilen können enorm viele Fail-Ursachen ausserhalb des Blickfeldes liegen.
    Ich habe Rainmans Antwort so verstanden, dass ich mein Problem mit Threading lösen kann.. Da ich mich damit nicht besonders gut auskenne, habe ich es nachgeschlagen und habe den Code des obigen Posts gefunden. Das Füllen des Tables nimmt ja die Zeit in Anspruch, die Daten sind noch nicht mal an ein DGV gekappselt.