Gibt es ein Objekt, das zu einem bestimmten DateTime oder DateTimeOffset Ereignis wird? Ich benutze einen Timer, um diese Operation jetzt auszuführen, aber es erfordert ein bisschen Berechnung von meiner Seite, dachte nur, dass dort vielleicht schon etwas vorhanden ist.Klasse in der BCL, die zu einer bestimmten DateTime auftritt?
Antwort
Ich sehe nicht, wie Sie jede Berechnung zu tun haben:
public void StartTimer(DateTime target) {
double msec = (target - DateTime.Now).TotalMilliseconds;
if (msec <= 0 || msec > int.MaxValue) throw new ArgumentOutOfRangeException();
timer1.Interval = (int)msec;
timer1.Enabled = true;
}
Wenn Sie ASP.NET verwenden, können Sie möglicherweise ein leeres Objekt mit einem deklarierten ExpirationDate in den Cache einfügen und dann die CacheItemRemovedCallback behandeln. Nur ein Gedanke, weiß nicht, ob es für dich arbeiten wird.
Wenn Sie nicht ASP.NET verwenden Sie immer noch in der Lage sein, diesen Trick mit einem anderen Caching-Framework verwenden wie die Enterprise Library Caching Block
Ja, ich denke, das ist komplizierter/hacky als nur einen Timer zu verwenden und das Intervall zu berechnen :) Netter Gedanke, obwohl. –
@ löffel16, stimmte zu, dass es keine Technik war, die ich jemals benutzt habe oder brauchte, aber ich habe irgendwo davon gehört. – bendewey
Nicht, dass ich wüsste. Ich habe meine eigene Klasse gerollt, um das zu tun.
Ich mag:
System.Timers.Timer _WaitForScheduledTime;
_WaitForScheduledTime = new System.Timers.Timer();
_WaitForScheduledTime.Elapsed += new ElapsedEventHandler(WaitForScheduledTime_OnElapsed);
_WaitForScheduledTime.Interval = _ListOfJobs.IntervalUntilFirstJobIsToRun().TotalMilliseconds;
_WaitForScheduledTime.Start();
...
private void WaitForScheduledTime_OnElapsed(object source, EventArgs e)
{
log.Debug("Ready to run at least one job");
// restart the timer
_WaitForScheduledTime.Interval = _ListOfJobs.IntervalUntilFirstJobIsToRun().TotalMilliseconds;
_WaitForScheduledTime.Start();
}
- 1. Hinzufügen einer TimeSpan zu einer bestimmten DateTime
- 2. Abrufen der Pfad zu dem Verzeichnis einer bestimmten Klasse Datei
- 3. log4j: Protokollausgabe einer bestimmten Klasse zu einem bestimmten Appender
- 4. Suchen nach einer bestimmten DateTime in einer SQL-Datenbank (WebMatrix)
- 5. Trace vs Debug in .NET BCL
- 6. Wie werden die in einer bestimmten Klasse in einer anderen Klasse generierten Daten verwendet? (in Python)
- 7. Construct DateTime mit dem heutigen Datum zu einer bestimmten Zeit
- 8. Zuweisen von bestimmten Dingen zu einer Klasse in Python
- 9. Verstecktes Boxen im BCL?
- 10. zu bestimmten Klasse in HQL Casting
- 11. Erstellen eines Datetime-Objekts in einer bestimmten Zeitzone in JodaTime
- 12. Die älteste DateTime in einer Liste abrufen?
- 13. Erkennen Eingabe in Eingabeelemente einer bestimmten Klasse
- 14. in Pandas Wie bekomme ich einen UTC TimeStamp (zu einer bestimmten Stunde) von einer DateTime?
- 15. Zuweisen einer DateTime zu Nullable <DateTime> in F #
- 16. Die Summe einer bestimmten Eigenschaft aller Elemente in einer Liste
- 17. Parsing der C# Datetime zu Javascript Datetime
- 18. Serialize DateTime zu XML in einem bestimmten Format. NET
- 19. PHP Klasse Datetime nicht gefunden
- 20. Undefinierte Klasse DateTime in PHPSstorm
- 21. MySQL zufälliges Datetime in einem bestimmten Datetime-Bereich einfügen
- 22. jQuery skalieren alle Bilder mit einer bestimmten Klasse zu Quadrat
- 23. Verwenden von Hibernate ohne Zuordnung zu einer bestimmten Klasse
- 24. TSQL Return Guid, die in einer Spalte am häufigsten auftritt
- 25. System.ServiceModel.Security.MessageSecurityException, die unter ExceptionShielding auftritt
- 26. Java - Objekt einer bestimmten Klasse abrufen
- 27. Fehler Konvertieren von Datetime in Zeichenfolge, Objekt der Klasse DateTime konnte nicht in Zeichenfolge konvertiert werden.
- 28. In Perl, wie man die Zahl, die vor einem bestimmten Wort auftritt, erhalten?
- 29. SQL RDf ot einer bestimmten Klasse nach
- 30. Verwenden Sie Getter-Methoden aus einer bestimmten Klasse abstrakte Klasse
das ist im Grunde, was ich getan habe. Vielen Dank! –