Przeczytałem dokumentację MSDN, ale tak naprawdę jej nie rozumiałem.
Uważam, że zachowanie Setjest „zastąp istniejące lub dodaj” (atomowo).
Czy to jest poprawne?
Przeczytałem dokumentację MSDN, ale tak naprawdę jej nie rozumiałem.
Uważam, że zachowanie Setjest „zastąp istniejące lub dodaj” (atomowo).
Czy to jest poprawne?
Odpowiedzi:
Addnic nie robi (zwraca false), jeśli istnieje już wartość dla tego klucza. Setw razie potrzeby wprowadza lub aktualizuje.
Remove+ Addpozostawiłoby lukę w środku, gdy inny wątek pytający o ten klucz nie dostałby żadnej wskazówki ( Setnie; wymiana jest zwykle atomowa); jako taki, chociaż Setma ten sam wynik końcowy co Remove+ Add, różnica w mechanizmach jest ważna, ponieważ może wpływać na innych rozmówców.
Na przykład Add :
Wartość zwracana
Wpisz: System.Boolean true, jeśli wstawienie powiodło się lub false, jeśli istnieje już wpis w pamięci podręcznej, który ma ten sam klucz co klucz.
setzastępuje zasady, jeśli przedmiot istnieje?