IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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
xpumpa
Člen
Avatar
xpumpa:15.3.2014 20:52

Zdravima a prosim o nazory.
Mejme tridu s asynchronimi metodami (async,await). Teto tridy udelame 5 instanci. Potrebuji, aby kazda instance nastavovala urcitou vnitrni hodnotu, kterou ale vidi vsechny ostatni instance. Napadla me pouze staticka promenna ve tride, ktera pri zmene pouzije lock. Diky.

 
Odpovědět
15.3.2014 20:52
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na xpumpa
David Hartinger:16.3.2014 8:45

Tady záleží co děláš, privátní statická proměnná je IMHO ok, ale všechno jde vždy vyřešit i bez statiky.

Nahoru Odpovědět
16.3.2014 8:45
New kid back on the block with a R.I.P
Avatar
xpumpa
Člen
Avatar
Odpovídá na David Hartinger
xpumpa:19.3.2014 15:11

A jak ? Jako staticka s lock mi funguje a je to thread-safe. Ale jak to vyresit bez statiky me vubec nenapada. Sdilena promena napric instancemi stejne tridy. Hledal jsem vsemozne, ale asi zadavam spatna klicova slova.

 
Nahoru Odpovědět
19.3.2014 15:11
Avatar
Odpovídá na xpumpa
Neaktivní uživatel:19.3.2014 21:29

On říkal, že to jde vyřešit, ale neříkal, že to bude pěkně hnusné :D

Nahoru Odpovědět
19.3.2014 21:29
Neaktivní uživatelský účet
Avatar
coells
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
coells:19.3.2014 22:44

V 99% případů je hnusný kód ten, kde se objevuje slovo static. Vždy to jde vyřešit jinak a takové řešení bude elegantní a čitelnější. Nejjednodušší způsob takového řešení je nadřazený kontext, ve kterém instance běží.

Btw, async a await neběží v separátním vlákně, takže není důvod sdílené proměnné synchronizovat přes monitory (direktiva lock). Dokonce ani není potřeba používat modifikátor volatile, protože začátky a konce tasku jsou označené jako memory barriers.

 
Nahoru Odpovědět
19.3.2014 22:44
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.