Zitat von
Cumgrinder:
Die Blacklist hat ca. 5000 Einträge.
Liste 2 hat ca. 150000 Zeilen.
Die Listen sind sehr lang, ist klar dass es nicht mal eben in 2 Minuten funktioniert.
Aber nach meheren Stunden spuckt er immernoch nichts aus.
Du hast völlig recht, so etwas sollte nicht 2 Minuten dauern. So etwas sollte nur wenige Sekunden dauern. Damit sollten auch die Fragen nach Dualcore-Nutzung und Fortschrittsleiste irrelevant sein. Den Code guck ich mir mal kurz genauer an
AAAAlso:
1. Wie von himitsu schon gesagt: Nicht auf memo.text zugreifen - jeder Zugriff führt dazu, dass alle Zeilen durchgegangen werden und mit Zeilenumbrüchen aneinander gehangen werden um den Text zu bekommen. Performancekiller. Bitte den Text in einer Stringvariablen zwischenspeichern. (Gilt insb. für die Filelist, siehe Punkt 2)
2. Ich würde durch die Filelist durchgehen und bei jedem Fund durch die Blacklist iterieren, um das zeug rauszuschmeißen. Dann wird das parsen nur einmal gemacht anstatt 5000 mal.
3. Keine
GUI Updates während der Verarbeitung. Verlangsamen das ganze nur. Falls wider Erwarten das gnaze Zeug länger als 5 Sekunden braucht, kann man über eine Fortschrittsleiste nachdenken. (Über 1 Sekunde und unter 5 Sekunden ein Sanduhrcursor, unter 1 Sekunde gar nichts)