Ich habe über 20 Funktionen erhalten, sollten einige von ihnen einmal pro Sekunde abgefeuert werden, einige, 20-mal pro Sekunde und zweimal eine Minute Zeit habe ich so etwas wie dieses:C# Richtiger Weg periodisch Brennen Funktionen
DateTime nowVar = DateTime.Now;
var lastExecutionFunc1 = nowVar;
var lastExecutionFunc2 = nowVar;
var lastExecutionFunc3 = nowVar;
var lastExecutionFunc4 = nowVar;
DateTime _now = DateTime.Now;
if ((_now - lastExecutionFunc1).TotalSeconds >= 0.1)
{
lastExecutionFunc1 = _now;
//dosomething
}
if ((_now - lastExecutionFunc2).TotalSeconds >= 0.5)
{
lastExecutionFunc2 = _now;
//do something else
}
if ((_now - lastExecutionFunc3).TotalSeconds >= 30)
{
lastExecutionFunc3 = _now;
//do something else
}
.....
Während dies funktioniert, kann ich nicht umhin zu denken, dass es eine elegantere Art und Weise, dies zu tun sein sollte. Das Erstellen einer var zum Speichern jeder Ausführung lässt den Kern sehr unordentlich erscheinen. Ich denke, ich könnte paar, aber das wäre auch nicht zu schön.
Jede Beratung?
EDIT: Wenn Sie möchten, um zu sehen, was ich versuche, you can see the whole code here zu erreichen. In Zeile 525.
Sie Timer-Klasse verwenden können, https://msdn.microsoft.com/en-us/library/system.windows.forms.timer(v=vs.110).aspx – Adil
Was ist ein Array erstellen von Funktionen, die Sie dann aufgrund eines steigenden Zählers direkt in Ihren Timer-Callback einspeisen können? – Robert
Die einfachste Lösung ist die Verwendung von [Timer-Klasse] (https://msdn.microsoft.com/en-us/library/system.timers.timer%28v=vs.110%29.aspx) – shadow