Forum Delphi.cz

Delphi => Obecné => Téma založeno: Jirka 17-03-2021, 14:23:11

Název: TThread a TTimer
Přispěvatel: Jirka 17-03-2021, 14:23:11
Rád bych zakomponoval  Timer do Threadového objektu.
Potřeboval bych v rámci objektu nastavovat  po určitém časovém intervalu  příznakové semafory .
Timer bych měl nastavený na 1000ms .
 
Dá se to pokládat za standardni řešení nebo mohu očekávat nějaké potíže ?
Díky
Název: Re:TThread a TTimer
Přispěvatel: Radek Červinka 17-03-2021, 14:39:46
Jako TTimer ? Ve vlakne? Podle mne spatna cesta, navic podle mne TTimer.OnTimer se vola z kontextu hlavniho vlakna.
Proc to v tom vlakne normalne necekas nebo si nemeris cas?
Název: Re:TThread a TTimer
Přispěvatel: Jirka 17-03-2021, 14:47:44
navic podle mne TTimer.OnTimer se vola z kontextu hlavniho vlakna.
V tom případě by to asi byla cestička k problémům.

Ten Timer mě prostě napadl jako možná snadnější cesta  ...
Název: Re:TThread a TTimer
Přispěvatel: pf1957 17-03-2021, 17:47:34
Podívej se na WaitableTimer -> na něj si ve threadu počkáš - typický každý thread co něco opakovaně dělá začíná WaitForMultipleObjects - nastavením timeoutu napr. na 100 ms ti také dá šanci si časovou základnu odměřit sam za předpokladu, že se nikde nezaseknes
Název: Re:TThread a TTimer
Přispěvatel: Jirka 18-03-2021, 17:51:28
Podívej se na WaitableTimer -> na něj si ve threadu počkáš - typický každý thread co něco opakovaně dělá začíná WaitForMultipleObjects - nastavením timeoutu napr. na 100 ms ti také dá šanci si časovou základnu odměřit sam za předpokladu, že se nikde nezaseknes
Toto vypadá jako schůdné řešení . děkuji