Hallo allerseits, ich hab hier gerade ein eigenartiges Phänomen. Ich bin dabei eine MFC-Software (VC++7) zu schreiben, die in verschiedene MDI-Fenster relativ viele Zeichen und Grafiken ausgibt. Nun habe ich zufällig entdeckt, dass die Software (die Routinen, die für die Anzeige zuständig sind) ca. um Faktor 6-8 schneller wird, wenn der Mediaplayer oder Quicktime im Hintergrund gestartet wird. Andere Software, die nicht unmittelbar mit Videoausgabe zu tun haben, wie IExplorer, Word etc. haben keinen Einfluss. Mir scheint, als würden Mediaplayer und Co. eine Art "Highspeed" Modus in den Anzeigefunktionen (Grafikkartenhardware?) starten. Hat jemand schon mal ähnliches festgestellt und wie kann man diese Funktionen in eigener Software benutzen? Vielen Dank schonmal Andreas
Ich glaube eher, daß der Mediaplayer, das Spionagetool Nummer 1 der Firma Microsoft, beim Aufruf der wiederzugebenden Datei der DRMs checkt und alle anderen Redmonter Spionagedienste abschaltet. In Summe wird dann de PC weniger gebremst!
Sehr unwahrscheinlich. Tritt dieses Phänomen auch auf, wenn du Winamp laufen lässt? MfG, der Helmut
Benutzt Du Timerfunktionen bzw Multithreading mit sleep o.ä.? Mediaplayer schaltet wahrscheinlich die Timerauflösung von 10 auf 1 ms hoch.
Abhilfe: Machs selber, dazu lässt sich die Win32-API-Funktion timeBeginPeriod verwenden. Einziges Argument: Gewünschte Timerauflösung in msec.
1 | #include <mmsystem.h> |
2 | |
3 | ...
|
4 | |
5 | timeBeginPeriod(1); |
Selbiges Phänomen lässt sich beobachten mei Solitär. Wenn man fertig ist, und die Karten alleine "wegfliegen" maus bewegen, und es geht schneller ;)
Ja genau, ich benutze mehrere Threads und bremse den Anzeigethread mit "sleep" aus. Ist nicht besonders elegant - ich weiß - aber das Ganze ist noch in der Konzept-Phase. Das Runterschalten der Timerperiode auf 1ms klingt erst mal logisch. Ich werde das morgen gleich mal ausprobieren. Vielen Dank für Eure schnelle Hilfe! Grüße Andreas
Vielleicht klinge ich jetzt wie Deine Schwiegermutter, die alles besser weiss. Aber ein Sleep sollte man generell meiden wie die Pest. Normalerweise arbeitet man mit Events, also Ereignissen und dann sollten solche Probleme gar nicht erst auftauchen. Für Deinen Fall, wenn Du das GUI nur ab und zu mal neu aufbauen willst, würde ich eher einen Timer aufsetzen, dessen Event dann die gewünschten Funktionen/Methoden aufruft.
Hallo Johnny, da gebe ich Dir Recht. Wie gesagt, ich bin gerade am Konzeptionieren. Das wird dann alles noch bereinigt und optimiert, wenn das Grundgerüst steht. Im Übrigen war die Funktion "timeBeginPeriod(1)" genau die, die den oben beschriebenen Effekt behoben hat. Also vielen Dank nochmal! Gruß Andreas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.