Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst C-Sharp - Speicherbedarf (Arbeitsspeicher) steigt waehrend Programm auf Eingabe wartet

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

21.11.2011 um 09:48 Uhr, 3436 Aufrufe, 2 Kommentare

Ich arbeite gerade an einem Programm, um waehrend der Arbeit verschiedene Daten schnell und einfach zu tracken. Um die Eingabe so schnell und so einfach wie moeglich zu machen, wird mit einer Tastenkombination eine Vorauswahl getroffen. Hierbei wird gleichzeitig geprueft, ob ein bestimmtes Fenster geoeffnet ist, da aus diesem Fenster dann ein String uebernommen wird. Prinzipiell funktioniert das Programm, aber der Speicherbedarf im Arbeitsspeicher steigt staendig weiter an. Und da das Programm eventuell mehrere Stunden laufen wird muss ich das verhindern. Hat jemand einen Tip, wie ich das verhindern kann?

Hier der entsprechende Code:
01.
int chars = 256;
02.
StringBuilder buff = new Stringbuilder(chars);
03.
string fenster;
04.

05.
int eingabe = 0;
06.
IntPtr handle;
07.

08.
//Schleife so lange bis Eingabe getaetigt
09.
while(eingabe == 0)
10.
{
11.
	//Name von aktivem Programm ermitteln
12.
	handle = GetForegroundWindow();
13.
	GetWindowText(handle, buff, chars);
14.
	fenster = buff.ToString();
15.

16.
	if(fenster.Contains("Internet Explorer"))
17.
	{
18.
		//Pruefen ob Shift gedrueckt ist
19.
		if(GetAsyncKeyState(Keys.ShiftKey))
20.
		{
21.
			//Pruefen ob F5 gedrueckt ist
22.
			if(GetAsyncKeyState(Keys.F5))
23.
				eingabe = 1;
24.
			//Pruefen ob F6 gedrueckt ist
25.
			else if(GetAsyncKeyState(Keys.F6))
26.
				eingabe = 2;
27.
			else
28.
				eingabe = 0;
29.

30.
		}
31.
	}
32.
	
33.
	System.Threading.Thread.Sleep(5);
34.
}
Danke
Mitglied: Blueberry
06.02.2012 um 18:35 Uhr
Hallo mabue88

Hast du schon mal geschaut, ob evtl. sich der StringBuilder voll laufen lässt?
Der StringBuilder verdoppelt sich ja ständig, wenn er Mal keinen Platz mehr hat... Ich würde Mal schauen, ob sich das Programm mit einem normalen String gleich verhält.

Btw. Registrier doch die Tasten und löse ein Event aus, wenn Shift + F5 oder Shift + F6 geklickt wurde, das würde dann die Prozessorlast sicherlich erleichtern und ein eventuelles Memoryleak in deiner Schlaufe kann so auch vermieden werden. Falls du nicht weisst wie, kann ich dir den Code sonst geben, schick mir einfach ne PN.

Gruss Blueberry
Bitte warten ..
Mitglied: mabue88
08.01.2013 um 12:46 Uhr
Ich bin gerade über diese Frage von mir gestoßen. Auch wenn sie schon älter ist, will ich noch was dazu schreiben.
Ich habe damals das Programm über mehrere Tage laufen lassen und dabei den Speicherbedarf aufgezeichnet. Dabei stellte sich heraus, dass der Speicherbedarf (laut Taskmanager) sehr schwankt, aber nicht ins Utopische steigt. Die aufgezeichneten Daten zeigen, dass der Speicherbedarf im Schnitt bei ca. 3 MB lagen. Daher habe ich das Programm nicht umgeschrieben.

Trotzdem vielen Dank!!!
Bitte warten ..
Ähnliche Inhalte
Visual Studio
C Sharp - Runden
gelöst Frage von Cubic83Visual Studio5 Kommentare

Guten Morgen, ich habe ein Problem unter C# bei dem ich den Preis eines Artikels ohne Mehrwertsteuer berechnen muss. ...

C und C++
C-sharp Form buggt
gelöst Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren. Ich habe ein kleines Problem. Unszwar möchte ich eine Ordner von C# zu einem PHP Script ...

C und C++
C Sharp XAML Universal
Frage von DippsC und C++3 Kommentare

Hallo ich versuche gerade mit C#2015 ein Projekt Universal XAML zu erstellen um auf einem Raberry PI 2 mit ...

C und C++
C-sharp SearchPattern (Regex)
Frage von YanmaiC und C++6 Kommentare

Hallo ihr Administratoren, ich verwende ein AUtocpmpletemenu Plugin. Dort habe ich Snippets, die dann sozusagen completed werden. Beim erstellen ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Tipp von ChriBo vor 7 StundenFirewall

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 1 TagInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 1 TagGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 1 TagGoogle Android2 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung21 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

DSL, VDSL
Neuer Glasfaser Anschluss - IPv4-Adressraum
Frage von norre2000DSL, VDSL12 Kommentare

Hallo Zusammen, ich werde meinen Glasfaser Anschluss wechseln und bin beim Ausfüllen des Antrags auf Fragen gestoßen bei denen ...

Internet
Aktuell HP-Support-Seite kaputt?
gelöst Frage von LochkartenstanzerInternet12 Kommentare

Hallo Kollegen, Weiß einer von euch, seit wann die HP-Support-Seite kaputt ist? ) Wollte heute morgen Druckertreiber runterladen und ...

Ubuntu
Exchange Alternative auf Ubuntu
Frage von TELLOUbuntu11 Kommentare

Hi NG, wir müssen für unsere Kleine Firma (5 User) das Email / Kalendersystem neu einrichten. Ich könnte jetzt ...