Diskuze: Promenna mezi instancemi
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.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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.
On říkal, že to jde vyřešit, ale neříkal, že to bude pěkně hnusné
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.
Zobrazeno 5 zpráv z 5.