Implementieren Sie eine Schleife mit einem timer in C#
Wollte ich ersetzen einen Zähler basiert while-Schleife mit dem timer-basierte while-Schleife in C#.
Beispiel :
while(count < 100000)
{
//do something
}
zu
while(timer < X seconds)
{
//do something
}
Ich habe zwei Arten von Timer in C# .NETZ für diesen System.Timers
und Threading.Timers
.
Welches wird besser zu nutzen, und wie.Ich will nicht, um zusätzliche Zeit, Verbrauch oder threading-Problemen mit dem timer.
mögliche Duplikate von so führen Sie die Schleife für eine bestimmte Zeit
InformationsquelleAutor Raulp | 2013-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden ein Konstrukt wie dies:
Seien Sie vorsichtig, wenn dies zu tun, auf der UI-thread, wie es block-Eingang.
Ich denke nicht so. Versuchen Sie es und finden Sie es heraus :).
Es funktioniert :~) !!
InformationsquelleAutor Bart Friederichs
Was über die Verwendung der Stopwatch-Klasse.
InformationsquelleAutor Casperah
Können Sie
Stoppuhr
Klasse statt Ihnen, wie;Vom
TimeSpan.FromSecond
InformationsquelleAutor Soner Gönül
Könnte man genauso gut verwenden Sie die
DateTime.Now.Ticks
Zähler:Jedoch, dies scheint so etwas wie busy waiting. Das bedeutet, dass der loop wird zu einem Kern der CPU laufen bei 100%. Es verlangsamt andere Prozesse, speed-up-fans ein.s.o. Obwohl es hängt davon ab, was Sie beabsichtigen zu tun, ich würde empfehlen,
Thread.Sleep(1)
in der Schleife.InformationsquelleAutor JeffRSon