Przesyłanie wiadomości pomiędzy wątkami

0

Witam,

Jak w C# można rozwiązać poniższy problem?

zaŁÓżmy że w programie mamy 10 wątków które zaczynają działać jak uruchamiamy program.
Każdy z wątków posiada swoje ID oraz listę wiadomość do dostarczenia. Pojedyncza wiadomość posiada ID nadawcy (id wątku który ma otrzymać wiadomość) oraz treść wiadomości.
Wszystkie wątki (losowo) komunikują się między sobą w celu dostarczenia wszystkich wiadomości. Działanie wątków kończy się jeżeli wszystkie wiadomości zostaną dostarczone.

Problem wygląda na trywialny jednakże nie znalazłem mechanizmu który odpowiadał za komunikację i przekazywanie wiadomości między wątkami.

Jakieś pomysły ?

0

Niech wątki zapisują i odczytują wiadomości do wspólnej synchronizowanej kolekcji.

0

Chyba słabo szukałeś, jest np. kolekcja ConcurrentDictionary -> http://msdn.microsoft.com/pl-pl/library/dd287191%28v=vs.110%29.aspx
Jeśli jako klucz skorzystasz z ID wątku, który ma obsłużyć daną wiadomość to masz połowę problemu rozwiązaną.

0

Naprościej chyba Named Pipes:
http://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeserverstream%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeclientstream%28v=vs.110%29.aspx

w każdym wątku tworzysz serwer z nazwa. Jesli ktos chce cos wyslac to laczy sie po nazwie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1