2012-07-11 45 views
6

numaralı kuyruğa eklenen yeni mesaj için herhangi bir olay veya geri arama var İki bileşenim var. Biri Pencere uygulaması ve diğeri Pencere Hizmeti.
Pencere Message Queue (MSMQ) ve Service uygulamasına yazma uygulaması okuyor ve mesajı işliyor.
kod açısından ... yeni mesaj için sıraya aramaya devam daima hizmet etmelidir ben mi
kullanım sonsuz while döngü veya Timer
VEYA
yeni mesaj sıraya eklendi için kuyrukta herhangi bir olay veya geri arama var mı? Böylece pencere uygulaması kuyruğa yeni bir mesaj eklediğinde, Servis bunu biliyor.
Tüm bu uygulamayı verimli hale getirmeyi istedim, böylece bunu başarmanın başka bir yolu varsa önerebilirsiniz.
Okuma için teşekkürlerMSMQ'de

cevap

11

Herhangi bir etkinliğe veya döngüye gerek yoktur. Receive yöntemi kuyruktan okuyacak ve sıra boşsa, yeni bir ileti eklenene kadar engellenecektir. Bu arada başka bir şey yapmanız gerekiyorsa, alıcı kodu ayrı bir iş parçacığına koyun.

Ayrıca, eşzamansız yaklaşımı BeginReceive kullanarak da kullanabilirsiniz. Bu, ileti sıradan okunduğunda aslında bir olayı gündeme getirecektir.