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

Odpowiedz Nowy wątek
2014-12-21 13:47
JJaniszewski
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 ?

Za taki temat wątek z Twoim postem powinien polecieć do kosza. A przy okazji - "zaŁÓżmy"? Język polski jest naprawdę taki trudny? - ŁF 2014-12-22 00:56

Pozostało 580 znaków

2014-12-21 17:24
0

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


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2014-12-21 22:11
0

Chyba słabo szukałeś, jest np. kolekcja ConcurrentDictionary -> http://msdn.microsoft.com/pl-[...]y/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ą.

Pozostało 580 znaków

2014-12-21 23:41
0

Naprościej chyba Named Pipes:
http://msdn.microsoft.com/en-[...]rverstream%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-[...]ientstream%28v=vs.110%29.aspx

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


░█░█░█░█░█░█░█░█░█░█░█░
To Named Pipes nie służy do komunikacji pomiędzy procesami? Pisanie do wspólnej bezpiecznej wątkowo kolekcji + jeszcze np. opakowanie jej obserwatorem będzie chyba wydajniejszym rozwiązaniem. - Xiuthechutli 2014-12-22 08:52
Może służyć do komunikacji miedzy procesami. Wg. Mnie pipes to łatwiejsze rozwiązanie, jeśli komunikacja w zrowneglaniu to Twoje wąskie gardło to znaczy ze masz cos nie tak z projektem - krwq 2014-12-22 09:23

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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