Rechenintensives Programm besser machen

Für allgemeine Fragen zur Programmierung mit PureBasic.
pede
Beiträge: 90
Registriert: 08.07.2007 20:37
Wohnort: brixen / Italien

Rechenintensives Programm besser machen

Beitrag von pede »

Hallo

Wie man vieleicht schon dem Titel entnehmen kann, weiß ich nicht wirklich, wie man mein Probelm beschreibt, und kann deshalb auch nicht nach irgendeiner Lösung suchen...

Also das Problem ist folgendes:
Ich schreibe gerade ein Programm (Verschlüsslung) das die einfache XOR Verschlüsslung benutzt...

Bei größeren Dateien ist dies natürlich sehr rechenintensiv...
Wenn ich nun während der Verschlüsslung z.B. im Inet surfe (mein programm läuft also im Hintergrund) und dann schauen will wie weit das Programm ist (es also wieder in den Vordergrund holen möchte) reagiert mein Programm darauf nicht mehr, was ja irgendwie verständlich ist, weil es ja die ganzen Rechenprozesse durcharbeiten muss, und da nicht mehr auf Klicks reagiert...
Ist es dann offen, ist der Fensterinhalt meist nur noch weiß, es reagiert dann überhauptnichtmehr, sobald es aber fertig hat, funktionierts wieder normal....

Kann man das Problem irgendwie lösen?
WinRar z.b. braucht bei der Entpackung von großen Dateien ja auch viel Zeit, es reagiert aber immer sofort, wenn man es z.b unterbrechen möchte...

thx for the help im vorraus

lg
pede
"oh... ein Sarkasmus-Detektor... ein wirklich nützliches Gerät" .. dit.. dit.. ditditdit.. *bumm*
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Dazu brauchst du einen Thread, oder du musst "While:WindowEvent():Wend" in deine Verschlüsselungsroutine ganz unten einbauen. Dann reagiert wenigstens das Fenster.

Ansonsten deine Kompette Verschlüsselungsroutine in eine Procedure packen, und diese mit einem Thread starten. Schau mal in der PB-Hilfe nach den Threadbefehlen.

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Kann man das Problem irgendwie lösen?
Threads.
Windows 10 Pro, 64-Bit / Outtakes | Derek
pede
Beiträge: 90
Registriert: 08.07.2007 20:37
Wohnort: brixen / Italien

Beitrag von pede »

oke super, so ein Stichwort hab ich gebraucht
:allright:
Danke, werd mich da mal durcharbeiten!
"oh... ein Sarkasmus-Detektor... ein wirklich nützliches Gerät" .. dit.. dit.. ditditdit.. *bumm*
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Threads können etwas umständlich zu handhaben sein (zt. auch mühsam zum Debuggen). Anonsten nimm ein While -> Windowevent() und lass die Datei blockweise durcharbeiten ( was du später wenns sauber tut immernoch mit Threads beschleunigen und MulticoreCPU fähig machen könntest. ;)

Thalius
"...smoking hash-tables until until you run out of memory." :P
Antworten