C#消息队列-初见

1.MQ安装-https://jingyan.baidu.com/article/a17d5285df9d3e8099c8f247.html

2.using System.Messaging;

3.实际操作

初始化

   private MessageQueue messageQueue = null;
   //消息的地址 本地和网络不一样
   private string path = @".\Private$\MyQueues";
 
   private void Form1_Load(object sender, EventArgs e)
   {
       //存在就实例化不存在就新建
       if (MessageQueue.Exists(path))
           messageQueue = new MessageQueue(path);
       else
           messageQueue = MessageQueue.Create(path);
       messageQueue.Label = "test messagequeue";
       messageQueue.Formatter = new XmlMessageFormatter(new string[] { "System.String" });
   }

写入

//发送消息 内容和名称
messageQueue.Send(this.txt_text.Text, this.txt_title.Text);
btn_read_Click(sender, e); 

读取

//读取所有名称
this.listBox1.Items.Clear();
 
 
//GetMessageEnumerator2
var item = messageQueue.GetMessageEnumerator2();
while (item.MoveNext())
{
    this.listBox1.Items.Add(item.Current.LookupId + "," + item.Current.Label + "," + item.Current.Body.ToString());
 
    //一般情况下,处理完消息就删除掉避免再次处理
    //item.RemoveCurrent();
} 

删除单条

if (this.listBox1.SelectedIndex > 0)
{
    long msgid = Convert.ToInt64(this.listBox1.Items[this.listBox1.SelectedIndex].ToString().Split(',')[0]);
    var item = messageQueue.GetMessageEnumerator2();
    item.MoveNext();
    for (long i = item.Current.LookupId; i < msgid; i++)
    {
        item.MoveNext();
    }
    item.RemoveCurrent();
    btn_read_Click(sender, e);
}        

清空

//清除所有消息
messageQueue.Purge();
this.listBox1.Items.Clear();  

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值