Autor Téma: TThread a TTimer  (Přečteno 322 krát)

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 394
  • Karma: 9
    • Verze Delphi: XE2
TThread a TTimer
« kdy: 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

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2869
  • Karma: 106
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:TThread a TTimer
« Odpověď #1 kdy: 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?
Embarcadero MVP - Czech republic

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 394
  • Karma: 9
    • Verze Delphi: XE2
Re:TThread a TTimer
« Odpověď #2 kdy: 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  ...

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3180
  • Karma: 137
    • Verze Delphi: D2007, XE3, DX10
Re:TThread a TTimer
« Odpověď #3 kdy: 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

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 394
  • Karma: 9
    • Verze Delphi: XE2
Re:TThread a TTimer
« Odpověď #4 kdy: 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