Multithreading GUI!!

German support forum

Moderators: Hacker, Stefan2, white

Symbi0nt
Junior Member
Junior Member
Posts: 20
Joined: 2003-03-05, 08:47 UTC

Multithreading GUI!!

Post by *Symbi0nt »

Nach Jahren melde ich mich mal wieder zu Wort mit einem Verbesserungsvorschlag.

Ich hatte vor jahren (2006) schon mal diese Vorschläge gebracht:

http://www.ghisler.ch/board/viewtopic.php?t=10347
http://www.ghisler.ch/board/viewtopic.php?t=9402

aber diese haben bisher nicht Ihren Weg in den TC gefunden. ich bin nicht auf dem laufenden, was TC 7.5 angeht, aber mit in der Liste der bestätigten features ist nichts davon.

Als jahrelanger Nutzer, sind meine Festplatten gewachsen und die Datenmengen nehmen immer weiter zu. Das langsamste Medium im PC ist und bleibt die Festplatte. Ich kopiere allerhand Daten von Partition A nach B um mal hier um mal da Platz zu schaffen. Auch kopiere ich von SD Karten und USB Sticks mal hier und mal da was hin.

Die Funktion Strg-L (Speicherplatz auf beiden Partitionen) nutze ich recht häufig und jedes mal könnt ich wirklich k*tzen es gedrückt zu haben. Der TC steht locker für 20 Sekunden still, man kann nichts machen und nach 10 - 30 Sekunden bekomm ich mein Ergebnis.

Ähnlich bei der Suche. Nutz ich die Suche muss ich ne zweite TC Instanz aufmachen um weiter mit meinen Daten arbeiten zu können.

Kopier ich etwas vomUSB Stick (4GB) auf eine Partition und nutze den Queue und möchte auch von Partition C nach D was kopieren kann ich keinen neuen Queue aufmachen sondern stell meine _schnellen_ Dateioperationen hinten an oder nutze eben keinen, schieb es aber dann in den Hintergrund.

Das alles ist sehr unbefriedigend. Wenn ich Dateien lösche gönnt sich Windows XP/TC derzeit ca. 5 Sekunden bis sie denn endlich weg ist. Am auffälligsten ist es, wenn ich Irfanview nutze und kurz das Bild ansehe, es doof finde und löschen möchte, dass ich erstmal in diese 5 Sekunden überlegezeit reingerate.

Das Phänomen trat nun schon bei 4 Rechnern jeweils XP + TC und über 3GHz auf. Ich versteh es nicht.

Am meisten aber nerven mich diE GUI Wartezeiten. Ich habe 2,4GHz Core 2 Duo und bin zum warten verdammt, wenn ich ein paar dateien hin und her bewege oder lösche.

ich habe eine echte Lizenz, ich mag den TC, aber ich muss schauen ob ich das weiterhin ertragen kann. Der Chrome Browser hats für mich vor gemacht. Jeder Tab ist ein eigener Prozess - kein Thread und es geht rasant schnell den Tab zu erstellen bzw. wieder zu killen. Ähnliches will ich auch für "meinen" Dateicommander haben.

Suche, FTP, Archivieren, sämtliche Operationen die auf der HD passieren (Dateibaum erstellen, Indizieren, Löschen, Markieren, ...) bitte in einem anderen Thread/prozess als der der die GUI zeichnet.

Ich will nicht mehr dazu verdammt sein, zu warten, bis die GUI wieder gezeicnet werden darf. Ich will Herr über die Bedienung sein.

Lager bitte alle Operationen in Worker Prozesse aus. Irgendwie.

Dies ist ein Hilferuf! :evil:
User avatar
Herr Mann
Power Member
Power Member
Posts: 574
Joined: 2004-05-30, 17:11 UTC
Location: Niedersachsen, Deutschland

Post by *Herr Mann »

Ich fühle mit dir :lol:

Ich behelfe mir einfach damit, das ich mehrere Instanzen starte.
Das ist zwar manchmal etwas umständlich, aber es geht wohl nicht "besser" :cry:

Teilweise treten hier ja sogar "komische" Effekte auf.
Wenn ich zb. einen kopier/verschiebe Prozess in den Hintergrund schiebe, hängt dieser trotzdem an den Thread "Total Commander 1".
Wenn ich jetzt eine zweiten TC starte, kann ich den ersten nicht schließen, obwohl der Prozess kopieren/verschieben im Hintergrund ist.

Gleiches gilt für das Mulitumbenenntool, die Suche und das Packen mit externen Plugins, wenn ich diese auf habe, habe ich keine Chance als eine neue Instanz zu starten.
Symbi0nt
Junior Member
Junior Member
Posts: 20
Joined: 2003-03-05, 08:47 UTC

Post by *Symbi0nt »

Ich arbeite eben echt viel mit dem TC.

Mein Heim PC ist ein Core 2 Duo E6600 mit 3,5GB RAM, XP Sp3 und irgendwas bei 1+TB HD Speicher.

Mein Laptop ist auch ein Core 2 Duo 2,4GHz Mobile mit 3GB, 320 GB HD und XP Sp3.

Derzeit nervt mich jegliche Wartezeit und im Dateimanager nervts mich derzeit echt am meisten. Wenn ich ein fettes Verzeichnis (z.B. über 10GB Daten [man ahnt ja nicht was auch mit legalen (!!) Downloads an Datenmengen zusammen kommen kann]) kopieren möchte, dann wird erstmal Pause gemacht, da erst mal daten gesammelt werden für den progress Bar. Ich will den Progessbar nicht missen. Aber mir wär lieber wenn hier ein anderer Ansatz gewählt werden würde.

Von mir aus könnte es schon mal los gehen und der Progressbarthread sammelt im Hintergrund die Daten zusammen für die finale Größe. Ändert sich die Prozentzahl eben beim kopieren, bewegen noch. Das ist dann eher eine Frage der GUI. Wenn unter dem Progressbar etwas erklärendes steht wie "12324 Dateien gefunden" und die Zahl geht weiter nach oben, dann kann ich mir als intelligenter mensch ausrechnen, dass dan auch die Prozente sich noch mal anpassen.

Eine andere idee wäre, wenn Dialoge generell auch als "Queue-Tab" übgesetzt werden könnten, so dann ein globaler Tab quasi den Dialog zu dem Vorgang enthält. Ich kann da hin wechseln, mir den Fortschritt ansehen, ihn abbrechen, anhalten etc. Im "Dateimanager-Tab" könnte ich dann ganz normal weiter arbeiten.

Oder die verzeichnisse auf die ich die Operation ausführen möchte werden IM Tc geblockt, kursiv dargestellt, bekommen IN der Zeile, ne saduhr oder "in Bearbeitung".

Mir egal was, aber blockier nicht meinen Arbeitsfluss.

Noch mal zu den Instanzen. ich mags eigentlich nicht, dass ich mehrere Instanzen vom TC nutzen muss. Ich machs hin und wieder, aber mit einer _besseren_ GUI und mehr Prozessen sollte das nicht nötig sein.
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Wäre wahrscheinlich schwieriger als Unicode einzubauen.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Symbi0nt
Junior Member
Junior Member
Posts: 20
Joined: 2003-03-05, 08:47 UTC

Post by *Symbi0nt »

Mag sein, aber ich habe nicht umsonst dazu geschrieben, dass mein erstes Topic dazu 2006 war. :D
CoolWater
Power Member
Power Member
Posts: 744
Joined: 2003-03-27, 16:33 UTC

Post by *CoolWater »

Bestes Beispiel, wo GUI und Operation getrennt werden sollte: BTM!!! Wenn z.B. ein DL läuft und man die (größere) Liste bearbeiten möchte, dann macht das absolut keinen Spaß, da etwas zu löschen oder hinzuzufügen.. ghisler hat mal irgendwo geschrieben, dass er die Message-Queue öfter aufrufen könnte um die GUI-Messages abzurufen... Allerdings is das auch nur ein Workaround... Denn diese Aktionen sollten nicht im GUI-Prozess laufen, sondern separat. Hatte ich damals auch vorgeschlagen, jedoch keine Reaktion erhalten, iirc.

Gruß
CoolWater
Peter Franz
Junior Member
Junior Member
Posts: 21
Joined: 2003-02-28, 10:45 UTC

Post by *Peter Franz »

Hacker wrote:Wäre wahrscheinlich schwieriger als Unicode einzubauen.

Roman
... aber vielleicht könnte man das häppchenweise Implementieren?!
Die stellen wo man am längsten wartet zuerst.
Mir würde da zuerst der sftp up-/download am Herzen liegen (wo
es nun zum Glück das sftp Beta-Plugin gibt)
vg
Peter
User avatar
Hacker
Moderator
Moderator
Posts: 13142
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Peter Franz,
aber vielleicht könnte man das häppchenweise Implementieren?
Kannst du dir sowas vorstellen? Wie könnte man Unicode häppchenweise implementieren? Für den Lister ja, aber für die Dateilisten nicht? Oder andersrum? Oder fürs Umbenennen schon, aber nicht fürs Kopieren?
So in etwa ginge auch das Multithreading (oder wie man das nennen will). Fürs SFTP Plugin ja, aber für nichts anderes, erst später? Müsste man die ganze Plugin Schnittstelle umkrempeln. Dann würden leute fragen, wieso das mit dem Plugin geht und mit anderen (oben erwähnten) Sachen nicht. Dann würden dazwischen noch andere Features implementiert werden. Sollen die Multithreaded sein oder nicht?

Ist halt nicht so einfach. Nicht alles auf einmal, und schon gar nicht häppchenweise. Bin zwar zweifellos dafür, sehe das aber als nicht all zu realistisch.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
Herr Mann
Power Member
Power Member
Posts: 574
Joined: 2004-05-30, 17:11 UTC
Location: Niedersachsen, Deutschland

Post by *Herr Mann »

Man muss sich erst einmal klar sein, was man denn "herauslösen" will und kann. Daher denke ich doch, das man klein anfangen kann.

Mir fallen da so gleich ein paar Dinge ein.
- Mehrfachumbenenntool
- Suche
- Dateien aufspalten/zusammenfügen

Könnte man diese nicht einfach in externen Programme auslagern, wo der TC dann nur die Parameter übergibt?

Einfaches Beispiel:
Den Lister gibt es auch als Einzelanwendung.
Wenn ich diesen als "internen Viewer mit Datei unter Cursor" starte und den TC schließe, wird der Lister mit geschlossen.
Stelle ich aber auf "externen Viewer" und wähle hier Lister.exe aus, sind diese beiden Prozesse getrennt.
daflo
Junior Member
Junior Member
Posts: 17
Joined: 2008-09-29, 21:48 UTC

Post by *daflo »

Sehr gute Idee, die "Power Tools" aus der Main EXE rauszulösen...
Bitte umbedingt auch das Sync-Tool! Das Sync-Tool ist eindeutig das beste mir bekannte für manuelle Sync-Vorgänge (für automatisiert im Hintergrund hab ich eh was anderes im Einsatz). Es nervt aber gewaltig, dass ich zum Weiterarbeiten eine neue Instanz des TC starten muss, weil der gerade angestoßene Sync-Prozess das Hauptfenster für die nächste halbe Stunde lahmlegt...
Ich sehe eigentlich auch keine Notwendigkeit, das alles in der Hauptanwendung zu machen (wird doch schließlich nur noch komplizierter dadurch...), oder hat das einen technischen Hintergrund der sich mir nicht erschließt?

kleines Beispiel am Rande, beim Konkurrenzprodukt SpeedCommander ist das so gelöst - Suche, Viewer und Sync-Tool sind hier eigene EXEs und bekommen von der Hauptanwendung nur Parameter übergeben.
User avatar
Herr Mann
Power Member
Power Member
Posts: 574
Joined: 2004-05-30, 17:11 UTC
Location: Niedersachsen, Deutschland

Post by *Herr Mann »

daflo wrote: Bitte umbedingt auch das Sync-Tool! .
Klar! Wie konnte ich das nur vergessen?! :wink:
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

Sich jetzt den Kopf über die 8er zerreißen macht irgendwie keinen Sinn. Die 7.5er ist ja noch nicht mal draußen.
daflo
Junior Member
Junior Member
Posts: 17
Joined: 2008-09-29, 21:48 UTC

Post by *daflo »

Tja - je eher Dinge auf der Wunschliste landen, desto eher kann man wohl auf die Umsetzung hoffen. Somit seh ich schon einen Sinn darin!
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

So oft wie das schon diskutiert würde, müsste es ja schon auf der riesigen Wunschliste draustehen.
Peter Franz
Junior Member
Junior Member
Posts: 21
Joined: 2003-02-28, 10:45 UTC

Post by *Peter Franz »

... meinte auch NICHT die Unicode-Umstellung - sondern die
Verlagerung mancher Operationen in den Hintergrund - die
eben besonders lange dauern können.
Beim normalen FTP gibts z.B. die schöne Option im Hintergrund
senden - beim SFTP leider nicht.

vg
Peter


Hacker wrote:Peter Franz,
aber vielleicht könnte man das häppchenweise Implementieren?
Kannst du dir sowas vorstellen? Wie könnte man Unicode häppchenweise implementieren? Für den Lister ja, aber für die Dateilisten nicht? Oder andersrum? Oder fürs Umbenennen schon, aber nicht fürs Kopieren?
So in etwa ginge auch das Multithreading (oder wie man das nennen will). Fürs SFTP Plugin ja, aber für nichts anderes, erst später? Müsste man die ganze Plugin Schnittstelle umkrempeln. Dann würden leute fragen, wieso das mit dem Plugin geht und mit anderen (oben erwähnten) Sachen nicht. Dann würden dazwischen noch andere Features implementiert werden. Sollen die Multithreaded sein oder nicht?

Ist halt nicht so einfach. Nicht alles auf einmal, und schon gar nicht häppchenweise. Bin zwar zweifellos dafür, sehe das aber als nicht all zu realistisch.

Roman
Post Reply