spuštění kódu v určený čas   zodpovězená otázka

Komponenty, .NET

Zdravím,

Potřebuji ve spuštěné aplikaci v určité časy pouštět procedury.

Tak sem se pokusil prohledat google i tento web a nikde jsem nic nenašel. Nevím jestli jsem se netrefil do vyhledávacího řetězce či co.

Měl jsem představu že existuje něco co bude koukat na hodiny a v nastavený čas spustí danou proceduru.

Tím nemyslím timer, ale aby to hlídalo konkrétní čas (např 14:53).

Svym způsobem jde o stejnou aplikaci jako nějaký budík, nebo alarm, ale místo randalu to spustí proceduru.

Díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nedala by se použít událost Timeru "Tick" a v této události kontrolovat, zda se aktuální čas rovná tomu požadovanému?

Použití je velmi jednoduché. Timer se dá nastavit na takové rozlišení, jaké je potřeba.


Dim Timer1 as new timer
Timer1.interval=1000 'milisekundy
addHandler Timer1.Tick, addressOf compareTime
Timer1.Enabled = True

Private sub compareTime(sender as timer,e as eventArgs)
..................
end sub

PetrS

nahlásit spamnahlásit spam 0 odpovědětodpovědět

O tomto řešení jsem také přemýšlel. Jen sem myslel jestli nebude nějaké systémové řešení. Přeci jen .NET je vcelku silný, tak třeba :-).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Další možnost je nastavit timer1.interval na současný čas + (žádaný čas spuštění-současný čas).

Událost se tak stane pouze jednou a to v předpokládaný čas. Hodnotu interval pak nastavit na další takový rozdíl a opět timer spustit.

Pak není nutné porovnávat čas uvnitř procedury compareTime.

Pro takový způsob je samozřejmě název procedury zavádějící. :)

PetrS

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Buď použijte Timer, nebo systémový plánovač úloh. Nic lepšího není.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Přesně tak. A protože vytvoření naplánované úlohy z .NETu udělat lze (někde to používám), tak mi to přijde i jako celkem elegantní řešení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Všem díky za odpovědit. Pořeším to přes Timer. Díky.

BTW jen tak na okraj, jak přes .NET přistupovat k naplánovaným úlohám? Stačí jen naznačit nějaké klíčové slovo, pak si dohledám. Lze úlohy i odstraňovat?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To si nejsem jistý zda půjde, plánovač úloh není knihovna .Netu ale aplikace která běží jako služba. Nemusí být vůbec nainstalovaná, může být zakázaná atd.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback