Send Message
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingsystem.messaging;namespacewindowsformsapplication1{ Public Partial classForm1:form { PublicForm1 () {InitializeComponent (); }        stringQueuePath =". \\private$\\test"; IMessageFormatter Formatter=NewSystem.Messaging.BinaryMessageFormatter (); Private voidButton1_Click (Objectsender, EventArgs e)            {MessageQueue queue; if(!messagequeue.exists (QueuePath)) {Queue=messagequeue.create (QueuePath); Queue. SetPermissions ("Administrators", Messagequeueaccessrights.fullcontrol); Queue. Label=QueuePath; } System.Messaging.Message Message=NewSystem.Messaging.Message (); Message. Body=richTextBox1.Text; Message. Formatter=formatter; if(!messagequeue.exists (QueuePath)) {                return; } Queue=NewSystem.Messaging.MessageQueue (QueuePath); Queue.        Send (message); }    }}
Receive Message
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingsystem.messaging;namespacewindowsformsapplication2{ Public Partial classForm1:form { PublicForm1 () {InitializeComponent (); }        stringQueuePath =". \\private$\\test"; IMessageFormatter Formatter=NewSystem.Messaging.BinaryMessageFormatter (); Private voidForm1_Load (Objectsender, EventArgs e) {        }        Private Objectobj =New Object(); Private voidmessagequeuereceive () {if(!messagequeue.exists (QueuePath)) {                return; } MessageQueue Queue=NewMessageQueue (QueuePath); System.Messaging.Message Message=queue.            Receive (); Message. Formatter=formatter; Lock(obj)//Locking{writelog (message. Body.tostring ());//Assigning a value to your control} messagequeuereceive (); }        Private voidButton1_Click (Objectsender, EventArgs e) {Thread MyThread=NewThread (NewThreadStart (messagequeuereceive));        Mythread.start (); }        //define a delegate        Private Delegate voidWriteloghandle (stringformat); //Output        Private voidWritelog (stringmsg) {            if(richtextbox1.invokerequired) {Richtextbox1.begininvoke (NewWriteloghandle (Writelog), msg); }            Else{Richtextbox1.appendtext (string.            Format (msg)); }        }    }}
C # Message Queuing multithreaded delegation