Wie halte ich eine ansprechende Benutzeroberfläche während der Verarbeitung von großen Datenmengen?
Ich bin erstellen von Windows forms-Prozess (konvertieren von txt-Dateien in tiff) große Menge von Dateien. Setze ich den code hinter einen button (btnProcess). Ist das eine gute Idee? Es funktioniert, aber ich bemerkte, wenn ich gehe Weg von der winform und zurück zu kommen, sehe ich leeres Fenster, bis der Vorgang abgeschlossen ist. Ich habe gehört, über hintergrund-Arbeiter. was ist der Zweck der hintergrund-Arbeiter?
- versuchen Sie, Ihre Frage so anschaulich wie möglich zu helfen, andere Benutzer mit ähnlichen Problemen konfrontiert sind und auch anzuziehen, das beste Antworten möglich. "winform-Frage" ist wahrscheinlich nicht zu erreichen, entweder Ziel.
- Guter Vorschlag. Ich mag den neuen Titel macht es mehr Sinn. Nur ich wusste nicht, diese tollen Worte oder technischen Jargon.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie brauchen, ist hier multi-threading. Das bedeutet, dass zwei (oder mehr) threads der code würde parallel laufen. Einer von Ihnen wäre der UI-thread, der verantwortliche für das zeichnen der Fenster. In deinem Fall läuft dein code im UI-thread und damit die Blockierung der UI-rendering, während Ihr code ausgeführt wird.
Den Zweck der BackgroundWorker ist eine operation starten, in einem neuen thread und was Sie brauchen.
BackgroundWorker-Klasse
Die Seite die ich oben gelinkt enthält eine komplette BackgroundWorker Beispiel.
Hängt es von Ihrer Anwendung. Wenn dies eine single-purpose-Anwendung, die ist nicht extrem lang und das einzige problem ist der Bildschirm nicht malen. Das ist, was es klingt wie für mich, nur werfen eine Anwendung.DoEvents in die Schleife, und mit ihm getan werden.