Hey Danke für den Code hab ihn unter Windoof schon gestestet, er arbeitet tatsächlich ohne Thread und macht das selbe wie meiner, ich weiß nur noch nicht wie ich teste den später auf den Linux Lappis, und versuche schlauer zu werden, was dieses AddWindowTimer und #PB_Event_Timer ist, und warum Canvas Gadget.
Also unter Windows funzt mein Thread Code schon seit 8 Jahren mit 0 CPU Last (selbst auf meinem ältesten Lappi Singlecore Lappi der die meiste Zeit auf 600mhz läuft komm ich nicht auf mehr als 1-2%)
desshalb finde ich meinen Code gar nicht kritisch ich hab sogar früher noch oft OpenWindow in Threads benutzt (bei den alten PB Versionen) und selbst das ging die meiste Zeit ohne Probleme
Ich hab auch unter Windows einen Proxy Scanner geschrieben der bis zu 50 Bots benutzt, und jeder Bot arbeitet als seperater Thread, gestartet werden die Bots über einen Bot Launcher der auch ein Thread ist, auch da keine Probleme, desshalb weiss ich echt nicht, was an einem Thread mit Delay drin so kritisch sein soll sonst schmeiss ich massig Code in Threads, und da oben im grunde nur eine kleine Schleife, die eine Funktion aufruft, die prüft ob ein Bild in der Zwischenablage ist.
Threads sind eigentlich auch kein problem. Verwende ich auch unter Windows und Linux, macOS
Delay im Thread sind auch richtig.
Vermute ein Problem mit den Cipboard und Thread Instanz bei Linux. Werde ich mal testen
Deine Funktion "WatchForClipBoardImage" verbraucht 100%, weil sie sich ohne Delay ständig im Kreis dreht und immer am arbeiten ist. Da sollte wenigstens ein Delay(10) rein, damit der Scheduler auch anderen Threads noch CPU-Leistung abgibt.
@ccode_new
Auch der Event-Loop in deinem Code lastet schon einen Kern voll aus.
Ich habe 50% CPU-Auslastung beim Nichts-Tun und 100% bei der Clipboard-Image-Suche auf meinem Dual-Core.
NicTheQuick hat geschrieben:Deine Funktion "WatchForClipBoardImage" verbraucht 100%, weil sie sich ohne Delay ständig im Kreis dreht und immer am arbeiten ist. Da sollte wenigstens ein Delay(10) rein, damit der Scheduler auch anderen Threads noch CPU-Leistung abgibt.
Also ich habs grade getestet, beide Codes von funzen zwar auch unter Linux, aber wie du schon sagtest ist da die Sache mit der CPU Last, wegen fehlendem Delay.
Und der 2. Code benutzt KillThread was ich eigentlich äusserst ungern benutze.
Meine Version funzt soweit, nur ist die CPU Last halt nicht so extrem gering wie unter Windows, und der Ram Verbrauch ist im Vergleich zu Windows einfach utopisch.
Vor allem wird die Oberfläche träge wenn ich den Delay Wert (der sich ja in einem Thread abspielt, der nicht auf Gadgets zugreift) erhöhe, und sobald ich die Überwachung von Bild-Daten in der Zwischenablage abschalte, geht nix mehr.
Die Automatische Erstellung von Bildern geht.
Sobald ich das Programm (benutzt den Tray) schliesse, kommt unten im Editor (Programm ist aber nicht abgestüzt, alles ist normal)
Vorteile bei Linux gegenüber Windows sehe ich bei folgenden Eigenschaften:
-- Paketverwaltung --
Zentraler und sehr sicherer Ort, um Programme zu installieren. Bei Windows geben sicherlich
viele Benutzer den Programm-Namen in Google ein und nehmen dann irgendeine Download-Seite,
die in Augenhöhe in der Suchergebnisliste erscheint. Nicht selten wurde das Download-Paket
von den Download-Portalen mit zusätzlicher Adware ausgestattet.
ALLE Programme werden von der Paketverwaltung aktuell gehalten. Bei Windows gibt es solch
eine zentrale Software-Verwaltung nicht, weshalb jede Software sich selbst um die eigene
Aktualität kümmern muss. Jede Software hat also ihre eigene Prüf- und Update-Funktion.
Manche dieser Funktionen sind in Diensten verpackt, die ständig im Hintergrund laufen.
Es gibt aber auch viele Programme, die keine eigene Update-Funktion eingebaut haben.
Informiert man sich für diese Programme nicht selber im Internet über Updates, veralten diese
auf dem System immer mehr und Sicherheitslücken häufen sich an.
Bei PC-Anfängern installiere ich deshalb lieber ein Linux-System.
An dieser Stelle ein klarer Pluspunkt für Linux.
-- Spyware / Adware / Autostart --
Viele Entwickler von Windows-Programmen sehen ihr Programm als sehr wichtig an und möchten
es in den Vordergrund stellen. So werden viele Programme gleich nach dem Installieren
ungefragt in den Autostart eingetragen, obwohl das oft unerwünscht ist.
Einige Programme installieren heimlich Erweiterungen in den Internet-Browsern, um die
Surfgewohnheiten der Benutzer zu analysieren und diese Informationen an Werbefirmen zu
verkaufen.
Bei Linux sind viele Programme Open-Source, weshalb diese so gut wie immer frei von
Adware / Spyware sind.
Es ist mehrfach zu lesen, dass Benutzer von Windows ausspioniert werden. Bei MacOS soll es
noch schlimmer sein.
Bei Linux besteht kein Interesse, mit dem Betriebssystem Geld zu erwirtschaften und es
steckt auch keine einzelne Firma dahinter, die man zu Spionage zwingen könnte.
-- Programmeinstellungen --
Bei Windows halten sich wenige Software-Entwickler an Standards und legen die Einstellungen
ihrer Software oft an Orten ab, die nicht dafür vorgesehen sind.
Die Linux-Programme hingegen halten sich so gut wie immer an die Vorgaben und speichern die
Einstellungen im Home-Verzeichnis ab.
Das sind so auf die Schnelle meine Gründe, die mir gerade eingefallen sind, warum ich auf
ein Linux-System umgestiegen bin.
Zudem kommt noch, dass ich mich inzwischen an Windows statt gesehen habe (gibt nichts neues
mehr zu entdecken). Es muss also nicht immer ein Vorteil beim anderem System geben,
der zu einem Umstieg führt, sondern der Grund kann auch einfach sein, dass man einfach mal
ein anderes System haben will, das sich anders anfühlt und sich anders verhält.
Einige deiner Vorteil bzgl. Linux sind aus der Sicht von "normalen" Nutzern allerdings extrem nachteilig.
Paketverwaltung
Gegen deine Argumente spricht nichts. Trotzdem empfinden 0815-User genau das für Problematisch. Gerade wenn eine bestimmte Software gesucht oder Features einer neueren Version gewünscht sind. Die Paketverwaltungen der Distributionen haben da zwei erhebliche Nachteile. Die Pakete, die in die offiziellen Paketquellen aufgenommen werden, werden von einer bestimmten Gruppe bestimmt. Das führt dazu, das häufig beliebte Software nicht in den offiziellen Paketquellen zu finden sind. Je nach Paketmanager ist es dann nötig, fremde Paketquellen über die Konsole in die Liste aufzunehmen (wenn eine Distri keine grafische Verwaltung der Paketquellen anbietet - Und selbst über eine solche Verwaltung ist es für einen Anfänger erstmal abstrakt). Genau das gleiche gilt für die Version. Stellenweise sind die Paketquellen bestimmter Anwendungen veraltet. In neueren Versionen sind stellenweise interessante Features drin. Und trotzdem landen die Versionen erst erheblich später in den Quellen.
Treiber
Die werden ebenfalls über die Paketquellen bereitgestellt. Unmengen an Treibern fehlen meistens und auch bei der Aktualität nicht immer auf der Höhe. Wenn man Glück hat, kommt man mit den Treibern aus der Quelle hin. Bei mir z.B. bekam ich ohne Konsole und manuellem kompilieren nie mein Thinkpad Edge oder mein Elitebook vollständig ans laufen.
Softwarequalität
Dank dem UAC befinden sind mittlerweile für die meisten Anwendungen unter Windows die Einstellungen im Benutzerordner (Bei Linux das Home-Verzeichnis). Das ist kaum noch ein Thema. Aber ich kenne nun einmal beide Welten. Windows und Linux. Ich verwende ungefähr 80 % kommerzielle Software. Und das aus vielen verschiedenen Gründen. Der wichtigste ist aber, das bei kommerziellen Produkten der finanzielle Erfolg gesichert sein soll. Und das bedeutet (zumindest in den meisten Fällen), das die Software für die Nutzer entwickelt wird. OpenSource bedeutet allerdings, das jemand oder eine Gruppe eine Anwendung entwickelt haben, um ihre eigenen Probleme zu lösen und diese dann auch anderen zur Verfügung stellen. Und das merkt man einfach.
Ich werde weiterhin uneingeschränkt auf MS Office setzen. Neben der Kompatibilität mit dem gängigen Standard (was logisch sein sollte) habe ich auch z.B. mit Access nie Abstürze. Base von LibreOffice oder OpenOffice verrecken immer. Mit diesen Anwendungen ist arbeiten unmöglich. Wenn ich die Lagerverwaltung implementiere, die wir damals in meiner Ausbildung mit Access umgesetzt haben, dann klappt das mit Access auch. Egal wie komplex ich das mache. Base verreckt immer. Außerdem ist das Gestalten von Dokumenten mit Word einfach viel angenehmer. Vor allem, wenn man die Dokumente streng semantisch erstellt. Scribus muss, um uneingeschränkt verwendet werden zu können, selbst erweitert werden. Als ich es zuletzt getestet habe, konnte Scribus noch keine Aufzählungs-Listen. Publisher hatte das schon immer am Bord.
Es ist ja toll, das Xara Lite für Linux für Lau ist und auch eine aufgeräumte Oberfläche hat. Aber MS Expression Design kostet mittlerweile auch nichts, ist ebenfalls aufgeräumt und kann zudem deutlich mehr. Wer noch mehr will, dem kann ich Magix Foto und Grafikdesigner empfehlen. Rastergrafiken kommen da zwar etwas zu kurz. Aber als Vektor-Programm einfach super. Und wer professionell arbeiten will, dem würde ich lieber Illustrator oder Corel Draw empfehlen als Inkscape. Mit der Software habe ich in meinen Tests auch nur Probleme gehabt. Entweder stimmt die Performance nicht (ruckeln, sobald ein Schlagschatten im Spiel ist), Abstürze beim Einsatz bestimmter Filter oder eine Version, bei der ein Menüpunkt einfach mal ohne Funktion ist.
Die Auswahl unter Windows ist logischerweise riesig und man muss viel testen, um das richtige Programm zu finden. Aber wenn man eines gefunden hat und dann eine quelloffene Alternative testet, der müsste merken was ich meine. Gute Software muss nicht immer was kosten. Und es ist wirklich ärgerlich, das einem oft Adware untergeschoben wird. Aber es gibt vielleicht nicht mehr als eine Hand voll quelloffener Anwendungen, die ich wirklich für gut befinde. Diese laufen aber auch unter Windows. Alle anderen Programme laufen aber nicht unter Windows oder nur mehr schlecht als recht. Und diese Kompromisse bin zumindest ich nicht bereit, einzugehen.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB) Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node