Jak mogę wygenerować wydarzenie w określonym czasie? Na przykład, powiedz, że chcę wygenerować alert o 8:00 rano, który informuje mnie o 8:00 (lub wydarzeniu, które informuje mnie o bieżącym czasie w danym momencie).Jak wygenerować alert w określonym czasie w C#?
Odpowiedz
Użyj klasę System.Threading.Timer:
var dt = ... // next 8:00 AM from now
var timer = new Timer(callback, null, dt - DateTime.Now, TimeSpan.FromHours(24));
callback
delegat będzie nazywany następnym razem to 08:00 oraz co 24 godziny później.
Zobacz this SO question jak obliczyć następne 8:00 AM wystąpienie.
private void Run_Timer()
{
DateTime tday = new DateTime();
tday = DateTime.Today;
TimeSpan Start_Time = new TimeSpan(8,15,0);
DateTime Starter = tday + Start_Time;
Start_Time = new TimeSpan(20, 15, 0);
DateTime Ender = tday + Start_Time;
for (int i = 0; i <= 23; i++)
{
Start_Time = new TimeSpan(i, 15, 0);
tday += Start_Time;
if (((tday - DateTime.Now).TotalMilliseconds > 0) && (tday >= Starter) && (tday <= Ender))
{
Time_To_Look = tday;
timer1.Interval = Convert.ToInt32((tday - DateTime.Now).TotalMilliseconds);
timer1.Start();
MessageBox.Show(Time_To_Look.ToString());
break;
}
}
}
Możemy użyć tej funkcji dla uzyskania stoper działa na czas lub zmienić go do pracy w określonym czasie: D
To oczywiste, że rozwiązanie @dtb jest lepsze. – albertein
Ale jest również oczywiste, że nie wpadł na pomysł, że osoba, która zadaje pytanie, lepiej rozumie jego pytanie. Zgadzam się, dał mi format do zrobienia tego o określonej porze dnia, ale musiałem go uruchomić na niektórych warunki nie statycznie o określonej porze dnia, gdy większość pracy wykonanej w moim kodzie polega na uruchomieniu tej pętli i ustawieniu czasu do następnego zatrzymania timera. Jeśli widzisz, że nie liczba linii w tym – Mobin
Czy alert muszą być generowane przez program? Alternatywnym rozwiązaniem jest wygenerowanie alertu za pomocą Scheduled Task (in Windows). Być może trzeba napisać mały program, który ma żadnych informacji ze zbiorów danych głównego aplikacji itp
Istnieje kilka głównych korzyści przy użyciu tego podejścia:
- Nie trzeba napisać dowolny kod obsługujący tę funkcję. Korzystasz z czegoś wbudowanego w system operacyjny. Przykład dotyczy systemu Windows, ale inne systemy mają tę samą funkcję. Możesz skoncentrować swoje wysiłki w zakresie programowania i wsparcia na swoim własnym kodzie.
- Twoja główna aplikacja nie musi być uruchomiona, aby uruchomić zadanie.
Opracowanie na podstawie odpowiedzi dtb w ten sposób ją wdrożyłem.
private void Form1_Load(object sender, EventArgs e)
{
System.Threading.TimerCallback callback = new TimerCallback(ProcessTimerEvent);
//first occurrence at
var dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 10, 0, 0);
if (DateTime.Now < dt)
{
var timer = new System.Threading.Timer(callback, null,
//other occurrences every 24 hours
dt - DateTime.Now, TimeSpan.FromHours(24));
}
}
private void ProcessTimerEvent(object obj)
{
MessageBox.Show("Hi Its Time");
}
- 1. Zakończ pętlę po określonym czasie w C#
- 2. Jak prawidłowo ustawić alarm w określonym czasie?
- 3. Codzienne powiadomienia w określonym czasie
- 4. Jak uruchomić aplikację w określonym czasie?
- 5. C# - Alternatywa dla System.Timers.Timer, aby wywołać funkcję w określonym czasie
- 6. Odśwież stronę o określonym czasie w ASP.NET
- 7. Uruchamianie zadania Laravel w określonym czasie
- 8. Powiadomienia w określonym czasie każdego dnia android
- 9. Jak wyłączyć witrynę w określonym czasie w strukturze Zend?
- 10. Jak rozpocząć proces w określonym czasie w java?
- 11. java- jak wygenerować losową wartość szesnastkową w określonym zakresie wartości
- 12. Jak wygenerować wystąpienie nieznanego typu w czasie wykonywania?
- 13. Jak anulować pobieranie UrlFetchApp.fetch po określonym czasie?
- 14. Jak zamknąć etap po określonym czasie JavaFX
- 15. Jak wygenerować liczbę całkowitą z literału ciągu w czasie kompilacji?
- 16. Jak ustawić crontab do wykonania w określonym czasie?
- 17. Najlepszy sposób publikowania w określonym czasie w Sitecore
- 18. Wysyłaj powiadomienia w określonym dniu i czasie w każdym tygodniu.
- 19. Identyfikator typu C++ w czasie kompilacji
- 20. Jak wygenerować unikatowe wartości w preprocesorze C?
- 21. Javascript: Wywołanie funkcji po określonym czasie
- 22. Kill process po określonym czasie bash?
- 23. Inicjalizuj obiekt NSDate o określonym czasie.
- 24. Generowanie liczby losowej w C w zakresie i określonym kroku
- 25. Wywołanie funkcji ogólnej z parametrem typu określonym w czasie wykonywania
- 26. Otwarte youtube wideo w określonym czasie za pomocą android intencję
- 27. błąd Alert w szybkim
- 28. Jak wygenerować inicjator w Ruby?
- 29. Jak mogę wygenerować tablicę protokołów obsługi przerw w C++?
- 30. Jak anulować AsyncTask Androida po określonym czasie? (Np. 10 sekund)
wiem następujący link wspomina go, ale może chcieć wyjaśnić, że to System.Threading.Timer i nie System.Windows.Forms.Timer – McAden
będzie działać, jeśli mogę dostarczyć ostatni 8.00 od teraz? Czy podano liczbę ujemną? – Jaanus
@Jaanus Nie Właśnie wypróbowałem to i to rzuca wyjątek. Jeśli dt