Witam piszę program w WinFormsach komunikujący się bazą danych MSSQL. Chcę zrobić automatyczne pobieranie danych co minutę, jednak nie mam pojęcia jak podejść do tego problemu. Będę wdzięczny za jakąkolwiek sugestię. Z bazą danych łączę się za pomocą Entity Framework
Możesz wykorzystać Timer, aby pobierał Ci dane co minutę.
dzięki faktycznie powinno działać myślałem że to będzie wstrzymywać pracę programu jeszcze raz dzięki
Ciekawostka- kiedyś implementowałem funkcjonalność w której również trzeba było wykonać pewien proces co minutę. Użyłem do tego właśnie timera. Okazuje się że timer nie jest precyzyjny, gdyż naturalną siłą rzeczy musi wykonać pewne dodatkowe obliczenia w tle. Skutkiem tego timer co jakiś czas (jeśli dobrze pamiętam co 60 godzin, jako że interwał wynosił 60 sekund) przeskakiwał jeden cykl minutowy.
W przypadku funkcjonalności nad którą pracowałem (i zapewne jest tak w większości przypadków) można było przeskoczyć ten cykl jako że w kolejnej minucie zaległe zadania z poprzedniej zostały wykonane. Jest to jednak coś co warto mieć na uwadze.
ja tylko zapytam - czy jesteś na 101% pewny, że chcesz coś takiego zrobić?
Spróbuj z Query Notifications. Różne RDBMS implementują podobne rozwiązania.
https://stackoverflow.com/questions/17207550/how-to-push-the-data-from-database-to-application?rq=1
Możesz też użyć jakiegoś crona np. Hangfire do pobierania danych w określonym interwale czasowym.