I have a program that listens to MSMQ messages and preforms database updates depending on messages. I want to build a monitor program that would display the arrived message on a form and also provide the user with ability to click on the buttons on this form at ANY time (even when my component is listening for MSMQ messages. I assume I have to put this component in a separate thread from the monitor application. How do I do it? I need details explanation and possible links with examples.