Entwickler-Ecke

C# - Die Sprache - Schneller als Timer


mr tobo - So 15.02.09 11:53
Titel: Schneller als Timer
Hallo.
die schnellste Frequenz, die ich mit meinem timer schaffe, sind 64 Hz, also ein Intervall von ca 15-16 ms.
Ich möchte aber für mein Programm, dass eine bestimmte Methode so ungefähr alle 100 us ausgefürt wird.
Gibt es da irgendeine Möglichkeit?

danke schon im Voraus

mfg
mr tobo


JüTho - So 15.02.09 12:30

Hallo,

mit den "Bordmitteln" von Windows und NET geht es nicht. Die Diskussion Echtzeit und C#? Genauer Timer? [http://www.mycsharp.de/wbb2/thread.php?threadid=40319] liefert eine Reihe von Gesichtspunkten und auch ein paar Links zu denkbaren Lösungen.

Gruß Jürgen


mr tobo - So 15.02.09 12:45

Naja, für son kleines Programm kauf ich mir wirklich keine Echtzeit-Einsteckkarte...
Und dann wäre dann da noch der QueryPerformanceCounter...
das wäre wohl die einzige noch halbwegs gangbare Lösung, aer leider einfach mit dem Fehler dass ich dafür wohl eine while(true) schleife machen müsste, is ja auch nicht ganz ungefährlich...


Kha - So 15.02.09 13:25

user profile iconmr tobo hat folgendes geschrieben Zum zitierten Posting springen:
is ja auch nicht ganz ungefährlich...
Wenn du es damit zum Bluescreen schaffst, bekommst du von mir einen Orden :zwinker: . Die ganzen Spiele machen es auch nicht anders, und selbst bei einer Anwendung im Hintergrund leidet seit HyperThreading/Multi-Cores nicht mehr das gesamte System darunter.


mr tobo - So 15.02.09 13:56

vllt is mein compi ja einfach zu schlecht, aber ich bring mit:

C#-Quelltext
1:
2:
3:
4:
5:
            while (true)
            {
                name = get_name(name);
                textBox1.Text = "" + name;
            }


das CPU auf 100 und das Programm zum Absturz.


jaenicke - So 15.02.09 16:23

Du benutzt ja auch kein Application.DoEvents [http://msdn.microsoft.com/de-de/library/system.windows.forms.application.doevents.aspx] um Rechenzeit freizugeben zum Beispiel.

Außerdem wäre vermutlich ein Thread eine bessere Lösung.


mr tobo - So 15.02.09 16:29

Perfekt.