Witam wszystkich serdecznie!
Utworzyłem usługę TCP IP. Przy wywołaniu przez klienta metody Register() usługa pobiera OperationContext.Current i zapisuje go w statycznej liście zlokalizowanej wewnątrz klasy usługi.
Listę utworzyłem po to, by informować pozostałych klientów poprzez połączenie zwrotne o istotnych wydarzeniach np. zalogowanie się użytkownika.
Jednak wszędzie, gdzie czytam o statycznych listach w c# autorzy artykułów odradzają to i ja również czuję się zaniepokojony, co się stanie jak na przykład będę iterował po liście wysyłając wiadomości do każdego klienta, a jeden z tych klientów będzie chciał zakończyć pracę z usługą i potrzeba będzie usunąć element z listy. Nigdzie nie mogę znaleźć rozwiązania tego problemu więc zgłaszam się do Was o pomoc. Jak to zrobić "bezpiecznie"?
Jeżeli ten link jest dobrą ścieżką do zwycięstwa proszę o potwierdzenie
https://docs.microsoft.com/pl-pl/dotnet/standard/collections/thread-safe/blockingcollection-overview