Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Tayson
Člen
Avatar
Tayson:25.11.2013 9:01

Ak v nejakom cykle while prijimam data kazdu 1/2 sekundy a v tom while stale pouzijem sleep na 100ms tak ako to potom funguje ?Uklada si ich niekde do buffera ?

 
Odpovědět
25.11.2013 9:01
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Tayson
Kit:25.11.2013 9:47

Když to budeš mít ve dvou vláknech, tak ne.

Nahoru Odpovědět
25.11.2013 9:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Tayson
Člen
Avatar
Odpovídá na Kit
Tayson:25.11.2013 10:11

Ako myslis v dvoch vlaknach ?

 
Nahoru Odpovědět
25.11.2013 10:11
Avatar
coells
Tvůrce
Avatar
Odpovídá na Tayson
coells:25.11.2013 10:22

Tvoje otázka je příliš obecná na odpověď, ale platí, že pokud data čteš z nějakého I/O zařízení, pak operační systém nebo .NET framework bufferují data.

Pokud dat přibývá rychleji, než je zpracováváš, nastává tzv. throttling, kdy se čtecí služba "ucpe" a dojde k jednomu ze dvou stavů:

  1. buffer přeteče a OS odmítne další data přijímat, takže dojde ke ztrátě dat
  2. buffer přeteče a dojde k chybě na zařízení, které data posílá, takže dojde ke ztrátě dat

Otestovat si to můžeš snadno - pokud se data posílají každou 1/2 sekundu, dej si tam sleep na 1 sekundu a sleduj, jestli se něco ztrácí.

Editováno 25.11.2013 10:23
 
Nahoru Odpovědět
25.11.2013 10:22
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Tayson
Kit:25.11.2013 10:42

V jednom vlákně budeš přijímat data tak jak přijdou ze vstupního zařízení. To vlákno bude asynchronní, bude stále čekat na vstupu. Druhé vlákno bude tato data zpracovávat a je jedno, jestli ho budeš uspávat na 100 ms nebo na 10 s. Jen musíš použít thread-safe proměnnou nebo kolekci na uchovávání stavu.

Nahoru Odpovědět
25.11.2013 10:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.