Mam dll zużyte przez usługę. Jego podstawowym zadaniem jest uruchamianie co X minut i przeprowadzanie niektórych kontroli systemu. W mojej dll mam klasę najwyższego poziomu, która deklaruje System.threading.timer i Timercallback. Konstruktor klasy inicjalizuje timerCallback z moją funkcją wątku. W moim Handler "Onstart" uruchamiam timer z timercallback i ustawić następnym razem na ogień i interwał czasowy. W moim przypadku jest to co 10 minut. Zwykle podczas tych 10-minutowych kontroli nie ma nic do zrobienia, ale usługa jest zmuszana do zrobienia czegoś co najmniej raz dziennie o ustalonym czasie.C# .NET 2 Threading.Timer - czas dryfujący
Mój problem: Zauważyłem, że podczas testowania czas codziennej kontroli wykonywany jest codziennie, powoli odsuwając się od pożądanego czasu rozpoczęcia o godzinie 8.30. na przykład przez około 20 dni nieparzystych mój czas upłynął od 08.30 do 08.31.35. Dryfuje około 4 - 6 sekund każdego dnia.
Moje pytanie: czy ktoś wie, dlaczego ten czas tak dryfuje i jak mogę go utrzymać w wyznaczonym czasie?
dziękuję
Nie jestem pewien na podstawie tego pytania, ale wydaje się, że czytasz, że planujesz timer, aby coś zrobił w 10 minut, którego pierwszą akcją jest zaplanowanie kolejnego zadania w 10 minut. Nie planowanie zadania co 10 minut. Czy mógłbyś opublikować kod czasowy? – Sign
Ustawiam timer tylko raz, gdy usługa zostanie uruchomiona po raz pierwszy i ustawię ją na uruchamianie co 10 minut. To tak, jakby co 10 minut "tykać" od tego czasu stopniowo dryfuje później i później. Trudno jest dodać kod, bo nie mogę umieścić zwrotu karetki w tym polu texc! – Keith
@Keith - Nie powinieneś mieć pełnego dylusa przez komentarze. Jeśli masz kod do przesłania, zaktualizuj swoje pytanie. –