ist VB zu bremsen ?
-
Danke, habe es schon in einem richtigen Forum heraus gefunden:
Threading.Thread.sleepcya & bye bye
-
kann mal jemand bitte meinen Account löschen ?!
-
Jederzeit. Dieses Recht steht gemäß Bundesdatenschutzgesetz jedem Nutzer zu.
Sende dazu eine Email an webmaster@c-plusplus.net mit der Emailadresse, unter der Du registriert bist.
-
Sende dazu eine Email an webmaster@c-plusplus.net mit der Emailadresse, unter der Du registriert bist.
Moment Moment.
Nicht das Ich das jetzt falsch verstehe.
Ich koennte also im Profil von Volkard die Mail-Adresse rauskopieren
und sagen Ich (Volkard) will geloescht werden?
-
bevor das ganze noch total aus den Fugen geraet:
was du brauchst ist"
DoEvents
das ist eine nette kleine Funktion, die kurzzeitig die Kontrolle an Windows abgibt. Windows sorgt dann dafuer dass auch alle anderen Programme auf deinem PC wieder etwas Prozessorzeit bekommen....
Wenn dein Programm also eine Liste abarbeitet, koenntest du ja nach jedem Abarbeiten eines Listenpunktes einfach ein DoEvents() hinklatschen und das sollte es sein.... wenn aber das Abarbeiten eines einzigen Listenpunktes schon so extrem bremst musst du halt schauen das DoEvents() irgendwo anders hinzutun wo es mehr bringt... (Zeitintensive Schleife, oder sowas)
-
Original erstellt von <a>:
**
Moment Moment.Nicht das Ich das jetzt falsch verstehe.
Ich koennte also im Profil von Volkard die Mail-Adresse rauskopieren
und sagen Ich (Volkard) will geloescht werden?**
Hi,
ich denke mal es gibt noch den Absender der E-Mail! Und das sollte dann wohl auch diese E-Mail-Addy sein!MFG
Alexander Sulfrian
-
ich denke mal es gibt noch den Absender der E-Mail! Und das sollte dann wohl auch diese E-Mail-Addy sein!
Das ist nun wirklich nicht das Problem
Naja.
-
Aber dieses DoEvents ist nur hilfreich für das eigene Programms. Andere Programme laufen dadurch nicht besser.
-
Original erstellt von Marc++us:
**Jederzeit. Dieses Recht steht gemäß Bundesdatenschutzgesetz jedem Nutzer zu.Sende dazu eine Email an webmaster@c-plusplus.net mit der Emailadresse, unter der Du registriert bist.**
Dir ist klar das die Absenderadresse beliebig einstellbar ist
-
Aber nochmal kurz was zum Thema.
Wenn man hier in dem Forum Antworten zu VB sucht, ist man zwar nicht 100% falsch, aber hier gibt es eigentlich keine VB-ecke, also kommen hier wohl auch selten Leute her, die in erster Linie VB programmieren. Es gibt duchraus Foren im WWW die besser für VB geeeignet sind.
Also wenn du Fragen zu VB hast und schnelle und kompetente Antworten willst, kann ich mir vorstellen, dass das anderswo schneller geht.Grüße Flow
-
Original erstellt von <ddd>:
Aber dieses DoEvents ist nur hilfreich für das eigene Programms. Andere Programme laufen dadurch nicht besser.Windows erhaelt wieder die Kontrolle und teilt den anderen Programmen Rechenzeit zu.. und ich glaub genau das wollte der Threadersteller ja (und IMO kommt das dann schon den anderen Programmen zugute)... aber ich glaub mittlerweile ist das Thema ja eh vom Tisch
-
Auch wenn @Fighter nicht mehr hier ist, das "Problem" gibt es nicht nur bei VB, auch in C/C++. Wer eine Schleife programmiert, muß auch dafür sorgen, dass sie so kurz wie möglich läuft, weil sonst andere Prozesse/Threads blockiert werden könnten. Das hat er trotz 20jähriger Programmiererfahrung noch nicht erkannt und mit "Geschwindigkeit" verwechselt.
Blackbird
-
Original erstellt von Lars:
Dir ist klar das die Absenderadresse beliebig einstellbar istEin Restrisiko. Außerdem unterstellst Du damit, daß ich sofort ohne Rückfrage lösche...
-
Original erstellt von Marc++us:
Ein Restrisiko. Außerdem unterstellst Du damit, daß ich sofort ohne Rückfrage lösche...Hab ich nicht unterstellt. Ich hab nur gesagt das die Absenderadresse fälschbar ist, sogar ohne Probleme, für jeden der google bedienen kann.
-
Deswegen mache ich ja eine Rückfrage...
-
Deswegen mache ich ja eine Rückfrage...
Hacker koennten den Datenverkehr manipulieren und deine Rückfrage an jemand
anders schicken.
-
die programmierer sind nicht dafür verantwortlich, dass andere als ihre programme weiterhin schnell ablaufen. das sollte das betriebssystem nache: preemptives multitasking heißt das zeug.
-
Hey - "Schnell" und "Langsam" sind doch die völlig falschen Begriffe!
Die CPU arbeitet alles im gleichen Takt ab. Sie "bremst" doch die Taktfrequenz nicht runter!
Aber mit ungünstigem Schleifen-Design kann jeder trotzdem die Abarbeitung anderer (eigener) Programmteile oder anderer Programme "ausbremsen". Jedenfalls in Windows. Und für VB gibts ja extra DoEvents() deswegen. Und in C/C++ unter Windows nimmt man dafür Threads. Die "Arbeit" wird aufgeteilt, weil das OS jedem Thread seine Zeit zuteilt. Ist einer voll beschäftigt, so arbeiten die anderen (quasi parallel) trotzdem weiter. Nur wer ALLE Arbeit in EINEN Prozess packt, braucht sich nicht zu wundern, dass die restlichen Programmteile nicht zum Zuge kommen, weil irgendwo weiter vorn eine Schleife alle CPU-Zeit "verbrät".Alles klar?
Blackbird
-
@Kevin@Uni
Eher unwahrscheinlich.@irgendwer
Sehe ich auch so.
-
Original erstellt von <irgendwer>:
die programmierer sind nicht dafür verantwortlich, dass andere als ihre programme weiterhin schnell ablaufen. das sollte das betriebssystem nache: preemptives multitasking heißt das zeug.Doch, das ist Aufgabe des Programmierers.
Und erste Devise auf Multitasking-Systemen ist: programmiere multitaskingfreundlich.
Das hier ist nicht die Windows 3.11 Debatte! Preemptives Multitasking gibt's auf allen 32-Bit-Systemen zur Zeit, es ist immer das gleiche Problem:
Wenn Du in einem Task z.B. ein while(!zustand()); reinschreibst, was passiert? Wie reagiert der Scheduler darauf?
Du hast ihm gesagt: warte so oft wie möglich. Also wird der Scheduler bei einem nicht zu 100% belastetetem System der while-Schleife alle freie Rechenzeit zuordnen, weil der Task ja (anscheinend) die volle CPU-Leistung braucht.
Sowas ist daher unfreundliche Multitasking-Programmierung.
Wie wirkt sich das auf das Systemverhalten aus? Nun, wenn das System unter Vollast steht, wird es bei der Taskumschaltung insgesamt träger. Auch wenn ich ein neues Programm starte dauert der Startup länger, weil der Scheduler erst CPU-Zeit für den neuen Task freimachen muß. Der Rechner funzt natürlich immer noch, seine CPU-Zeit wird aber ineffektiv genutzt. Denn Warten sollte der Scheduler (der weiß wie das geht), nicht eine Schleife.
Das Problem ist uralt auf Multitaskingsystemen, sowas mußte man schon bei OS/9 beachten.
Lösung dafür ist zum einen, daß Tasks auf Events warten, d.h. der Task macht so eine Art wait_for_signal(something) und gibt seine Rechenzeit ab. Damit braucht er 0% CPU-Last.
Dies ist nicht immer realisierbar - manchmal muß man ja in der Schleife was tun, eine Iteration durchführen z.B. Auch da ist es aber nicht nett, wenn man nun Zyklus für Zyklus durchklopft. Man sollte von Zeit zu Zeit seine Zeit kurz abgeben, um zusätzliche Belüftung ins System zu bringen - z.B. unter Windows mit einem sleep.