Diskuze: Nedojde k strate dat ?
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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ů:
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í.
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.
Zobrazeno 5 zpráv z 5.