I've made several solutions using MSMQ, and for c# I've found the
System.Messaging[
^] documentation very useful.
Just spend some time browsing through the documentation - and this might be of particular interest:
MessageQueue.ReceiveCompleted[
^] - as it suggest a pattern of design I've found very useful.
Regards
Espen Harlinn