2012-07-11 10 views
6

Mam dwa składniki. Jednym z nich jest aplikacja Window, a inne to Window Service.
Zapisywanie aplikacji okna do usługi Message Queue (MSMQ) i usługi jest odczytywane i przetwarzane.
serwis powinny zawsze zachować się w kolejce do nowej wiadomości ... Jeśli chodzi o kod powinien ja
użycie nieskończony while pętla lub Timer
LUB
jest jakieś zdarzenie lub wywołania zwrotnego na kolejki do nowej wiadomości dodawane do kolejki? Tak więc, gdy aplikacja okna dodaje nową wiadomość do kolejki, usługa może wiedzieć.
To wszystko, co chcę, aby moja aplikacja była wydajna, więc jeśli istnieje jakikolwiek inny sposób, aby to osiągnąć, możesz zasugerować.
Dzięki za przeczytanieczy istnieje jakieś zdarzenie lub wywołanie zwrotne w MSMQ dla nowej wiadomości dodanej do kolejki

Odpowiedz

11

Nie potrzebujesz żadnego wydarzenia ani pętli. Metoda Receive zostanie odczytana z kolejki, a jeśli kolejka jest pusta, będzie blokowana do momentu dodania nowej wiadomości. Jeśli chcesz w międzyczasie zrobić coś innego, umieść kod odbiorczy w osobnym wątku.

Można również użyć podejścia asynchronicznego za pomocą BeginReceive. To faktycznie podniesie zdarzenie, gdy wiadomość zostanie odczytana z kolejki.

Powiązane problemy