Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 19792|Odpowiedź: 0

[Źródło] Wykorzystanie SyncRoot w StringDictionary

[Skopiuj link]
Opublikowano 23.11.2016 14:26:38 | | | |

Programowanie obiektowe w C# oferuje wiele przyjaznych dla użytkownika klas operacyjnych, teraz ten StringDictionary to zbiór klas specjalizujących się w przechowywaniu ciągów jako kluczy i wartości, znaczenie tej klasy jest następujące: C# wie, że ciąg w danym typie wartości jest dość powszechnie używany, inne typy wartości również można przekształcać w odpowiadające mu typy ciągów znaków, to jest znaczenie tej kolekcji, ale nadal można użyć innych obiektów kolekcji, aby ją zastąpić, ale zwróć uwagę na jeden punkt, Jeśli jest to przechowywanie ciągów znaków, może to zmniejszyć utratę pamięci i skrócić czas działania programu


SyncRoot może być używany do synchronizacji dostępu do StringDictionary

Mówiąc wprost, to koncepcja blokady, napiszmy program, który ją sprawdzi:

Kod jest następujący:



Mamy dwa wątki jednocześnie, aby dodawać dane do słownika StringDictionary,

Różnica czasu wykonania między pierwszym a drugim wątkiem wynosi jedną sekundę, aby zwiększyć różnicę czasu i zapobiec zbyt szybkiemu wykonywaniu.

Widać, że wątki przeszły do obu metod, a przy dodawaniu drugiego fragmentu danych czekały na dodanie pierwszego danego przed dodaniem drugiego, a czas dodawania jest bardzo szybki.

Poniżej napiszemy to w inny sposób, aby ułatwić zrozumienie:





Otwierane są 3 wątki, dane są dodawane, a 3 wątki wykonywane są niemal jednocześnie, ale po dodaniu danych każdy jest odstępem 10 sekund.

Podsumowując, przy dostępie wielowątkowym możemy użyć SyncRoot, aby zapewnić bezpieczeństwo wątków




Poprzedni:Jak używać spustu WPF do przełączania przycisków
Następny:c# Użyj OCR do rozpoznawania chińskich obrazów
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com