Chcę powtórzyć funkcję od momentu otwarcia programu, aż zamknie się co kilka sekund. Jaki byłby najlepszy sposób to zrobić w C#?Powtarzanie funkcji co kilka sekund
Odpowiedz
Użyj licznika czasu. Istnieją 3 podstawowe rodzaje, z których każdy nadaje się do różnych celów.
Stosować wyłącznie w aplikacji Windows Form. Ten licznik czasu jest przetwarzany jako część pętli komunikatów, więc czasomierz może zostać zatrzymany pod dużym obciążeniem.
Kiedy trzeba synchroniczności, użyj tego. Oznacza to, że zdarzenie tick zostanie uruchomione na wątku, który uruchomił timer, umożliwiając wykonywanie operacji GUI bez większego wysiłku.
Jest to najbardziej dużej mocy czasowy, który wyzwala kleszczy wątku tła. Umożliwia to wykonywanie operacji w tle bez konieczności zamrażania GUI lub głównego wątku.
W większości przypadków polecam System.Timers.Timer.
Użyj timer. Należy pamiętać, że .NET ma wiele różnych timerów. This article obejmuje różnice.
MSDN Magazine link jest martwy. –
Dzięki. Link zaktualizowany. –
Dla tego System.Timers.Timer
działa najlepiej
// Create a timer
myTimer = new System.Timers.Timer();
// Tell the timer what to do when it elapses
myTimer.Elapsed += new ElapsedEventHandler(myEvent);
// Set it to go off every five seconds
myTimer.Interval = 5000;
// And start it
myTimer.Enabled = true;
// Implement a call with the right signature for events going off
private void myEvent(object source, ElapsedEventArgs e) { }
Zobacz Timer Class (.NET 4.6 and 4.5) szczegółowe informacje
Z myślą o poszukiwaczach szukających szybkiej kopii i wklejenia użyłem przykładu @IvoTops i stworzyłem przykładowy tutaj -> https://gist.github.com/HockeyJustin/1161699bd26adb5c054d. – HockeyJ
- 1. Intencja TIMEZONE_CHANGED jest odbierana co kilka sekund.
- 2. javascript/jquery lub coś co zmienia tekst co kilka sekund
- 3. @Schedule adnotacja kursują co kilka minut (lub sekund)
- 4. Jak zapętlić obraz tła css z Jquery co kilka sekund?
- 5. Jak wywołać określoną metodę co kilka sekund wC#?
- 6. Wywołanie funkcji co X sekund w requestAnimationFrame
- 7. dismissViewControllerAnimated: zakończenie: ma kilka sekund opóźnienia
- 8. WCF: EndpointNotFoundException po uruchomieniu przez kilka sekund
- 9. Outlook Poczekaj kilka sekund, a następnie wykonaj
- 10. Co jest szybsze: powtarzanie stylów lub powtarzanie selektorów?
- 11. Powtarzanie w szablonowej funkcji po zmianie typu
- 12. Prowadzenie Cron co 30 sekund
- 13. Jak uruchomić skrypt unixowy co 15 sekund?
- 14. Jak mogę zmienić kolor tła fokusowanego elementu na kilka sekund?
- 15. marionetka, jak zrobić marionetkę, aby poczekać kilka sekund
- 16. podświetlić kolor obramowania pola tekstowego na kilka sekund?
- 17. Animacja SVG elementem co x sekund
- 18. Czytaj zawartość pliku tekstowego co 15 sekund
- 19. Powtarzanie serii APC?
- 20. Django - uruchom funkcję co x sekund
- 21. Powtarzanie kolorów
- 22. JavaScript wywołanie funkcji kilka razy z argumentami
- 23. Cron ekspresja co 50 sekund w Quartz
- 24. Jak zmienić obraz tła co X sekund?
- 25. jak zaplanować wywołania ajax co N sekund?
- 26. jak zrobić animację CSS co 10 sekund
- 27. Jak uruchomić metodę co X sekund
- 28. Sposób wykonywania funkcji Powershell kilka razy równolegle
- 29. Przekaż kilka parametrów w funkcji StartLogin
- 30. Wyłącz automatyczne powtarzanie za pomocą funkcji ActiveJob, używanej z Sidekiq
Po prostu dodatek - w rzeczywistości jest coś więcej niż tylko to - na przykład istnieje "DispatcherTimer" (WPF/Silverlight), a także inne narzędzia podobne do timerów. –
Należy również pamiętać, że wydarzenie, które upłynęło w System.Timers.Timer, jest uruchamiane w wątku interfejsu użytkownika, jeśli ustawiono obiekt SynchronizingObject, w przeciwnym razie zostanie wywołany w wątku ThreadPool. –
Należy zwrócić uwagę, że jeśli chcesz uzyskać niezawodność, żadna z nich nie działa w 100%, szczególnie w systemach o dużym obciążeniu. –