public InputOutputMessageQueue(string path, InputOutputMessageQueue <T> .InputOutputMessageQueueTypes queuetype, bool purge) { #if __USE_MSMQ this.InputOutputMessageQueueType = queuetype; this.MessageQueue = null; try { this.MessageQueue = new System.Messaging.MessageQueue(path); } catch (Exception ex) { this.MessageQueue = null; } // if (System.Messaging.MessageQueue.Exists(path)) //creates an instance MessageQueue, which points //to the already existing MyQueue // this.MessageQueue = new System.Messaging.MessageQueue(path); // else //creates a new private queue called MyQueue if ((this.MessageQueue == null || !this.MessageQueue.CanWrite) && this.InputOutputMessageQueueType == InputOutputMessageQueue <T> .InputOutputMessageQueueTypes.Server) { this.MessageQueue = System.Messaging.MessageQueue.Create(path); } if (this.MessageQueue != null) { this.MessageQueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(T) }); } if (queuetype == InputOutputMessageQueue <T> .InputOutputMessageQueueTypes.Server && purge) { this.MessageQueue.Purge(); } #endif }
public InputOutputThread(ManualResetEvent interruptprocessingevent, InputOutputMessageQueue <T> inputqueue, InputOutputMessageQueue <U> outputqueue, int threadid) { this.ThreadExitEvent = new ManualResetEvent(false); this.InputQueue = inputqueue; this.OutputQueue = outputqueue; this.InterruptProcessingEvent = interruptprocessingevent; this.ThreadId = threadid; }
public InputOutputThread(ManualResetEvent interruptprocessingevent, InputOutputMessageQueue <T> inputqueue) : this(interruptprocessingevent, inputqueue, null, 0) { }