MSMQ的使用

来源:互联网 发布:php项目文档 编辑:程序博客网 时间:2024/05/22 09:49
1.
public class MSMQHelper    {        private readonly string _queuePath;        private MessageQueue messageQueue;        public MSMQHelper(string queuePath) {            this._queuePath = queuePath;            //判断Queue 是否存在            if(!MessageQueue.Exists(this._queuePath)){                MessageQueue.Create(this._queuePath);            }            //打开Queue            messageQueue = new MessageQueue(this._queuePath);            messageQueue.DefaultPropertiesToSend.AttachSenderId = false;            messageQueue.DefaultPropertiesToSend.UseAuthentication = false;            messageQueue.DefaultPropertiesToSend.UseEncryption = false;            messageQueue.DefaultPropertiesToSend.AcknowledgeType = AcknowledgeTypes.None;            messageQueue.DefaultPropertiesToSend.UseJournalQueue = false;            messageQueue.Formatter = new BinaryMessageFormatter();        }        //入Queue        public void ENQueue(object obj)        {            System.Messaging.Message message = new System.Messaging.Message();            message.Body = obj;            messageQueue.Send(obj);        }        //出Queue        public object DEQueue()        {            object obj = null;            System.Messaging.Message message = messageQueue.Receive();            Console.WriteLine(message.Formatter);             obj = message.Body;            return obj;        }    }


2.

[Serializable]    public class Task    {        public Int32 TaskID { get; set; }        public string TaskName { get; set; }        public DateTime TaskCreateTime { get; set; }        public DateTime TaskExecluteTime { get; set; }        public int TaskStatus { get; set; }    }



3. 

    static void Main(string[] args)        {            string queuePath = @".\Private$\TestQueue";            E6Pro_MSMQ.MSMQHelper mh = new MSMQHelper(queuePath);            //发送一个字符串            mh.ENQueue("this is a test msg");            string msg = mh.DEQueue().ToString();            Console.WriteLine("msg:"+msg);            //发送一个对象            Task t = new Task();            t.TaskID = 1;            t.TaskName = "测试任务";            t.TaskStatus = 9;            t.TaskCreateTime = DateTime.Now;            t.TaskExecluteTime = DateTime.Now.AddMinutes(1000);            mh.ENQueue(t);            object obj = mh.DEQueue();            Task rt = (Task)obj;            Console.WriteLine(rt.TaskID+":"+rt.TaskName);            Console.ReadLine();        }



0 0
原创粉丝点击