1.在服务电脑上打开 消息队列

①进入控制面板》程序》启用或关闭windows功能

②将需要的勾选(我自己全选了哈哈哈)

③我的电脑 右键 打开管理 见到消息队列 在专用队列上新建专用队列

⑤填写名称还有选择是否是事务性

好到这里就基本准备完成

下面就要使用队列 来发送消息

           //创建消息队列 并发送消息到队列
try
{
//连接到本地新创建的队列
MessageQueue myQueue = new MessageQueue(".\\private$\\test2");
//创建一个消息
System.Messaging.Message myMessage = new System.Messaging.Message();
//给消息体赋值
myMessage.Body = "你好我是消息体";
myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
//发送消息到队列中(创建队列时勾选了事务性之后 不能直接使用 public void Send(object obj) 这个方法 因为其不支持事务) // 我要使用下面这个支持事务的发送方法
myQueue.Send(myMessage,System.Messaging.MessageQueueTransactionType.Single); }
catch (ArgumentException ex)
{
Console.WriteLine(ex.Message);
}

发完消息之后就要接收消息

消息的接受使用Receive()方法

但是该方法会阻塞线程

所以建议将其放到一个独立的线程中,不让其影响其他线程的运行

  

            //创建一个任务 让其不断的在接收消息队列发出的消息
Task t = Task.Factory.StartNew(() => {
while (true)
{
//创建队列 要跟发消息的队列同一个名称
MessageQueue mq = new MessageQueue(@".\private$\test2"); // 如果不用多线程就会阻塞在Receive
System.Messaging.Message m = mq.Receive(); //定义内容格式
m.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) }); //接收到消息后 回去更新主线程的UI界面
Action<String> AsyncUIDelegate = delegate (string n)
{
this.ReceiveText2.Text = n; //对ui的操作
};//定义一个委托
this.ReceiveText2.Invoke(AsyncUIDelegate, new object[] { m.Body.ToString() });
}
});

测试效果:

啊啊啊啊 要记住勾选了事务性 不要用send(object ) 这个方法呀

												

微软 消息队列 MessageQueue 简单使用的更多相关文章

  1. 微软消息队列MessageQueue(MQ)

    首先本地安装微软的消息队列服务器. 基础类: namespace Core.MessageQueueTest { public class TestQueue : IDisposable { prot ...

  2. .Net下的MSMQ(微软消息队列)的同步异步调用

    一.MSMQ简介 MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具.消息队列 和电子邮件有着很多相似处,他们都包含多个属性, ...

  3. 微软消息队列-MicroSoft Message Queue(MSMQ)队列的C#使用

    目录 定义的接口 接口实现 建立队列工厂 写入队列 获取消息 什么是MSMQ Message Queuing(MSMQ) 是微软开发的消息中间件,可应用于程序内部或程序之间的异步通信.主要的机制是:消 ...

  4. 【转】MSMQ 微软消息队列 简单 示例

    MSMQ它的实现原理是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为Message),然后把它保存至一个系统公用空间的消息队列(Message Queue)中:本地或者是异地的消息接收程 ...

  5. .net微软消息队列(msmq)简单案例

    1.首先我们需要安装消息队列服务,它是独立的消息记录的服务,并保存在硬盘文件中. 我们添加名为:DMImgUpload的私有消息队列. 2.定义消息队列的连接字符串建议采用IP: (1)FormatN ...

  6. linux 进程学习笔记-消息队列messagequeue

    可以想象,如果两个进程都可以访问同一个队列:其中一个进程(sender)向其中写入结构化数据,另外一个进程(receiver)再从其中把结构化的数据读取出来.那么这两个进程就是在利用这个队列进行通信了 ...

  7. kafka消息队列的简单理解

    kafka在大数据.分布式架构中都很流行.kafka可以进行流式计算,也可以做为日志系统,还可以用于消息队列. 本篇主要是消息队列相关的知识. 零.kafka作为消息队列的优点: 分布式的系统 高吞吐 ...

  8. 消息队列_MSMQ(1)简单了解

    MSMQ (微软消息队列)   MSMQ 百度百科 MicroSoft Message Queuing(微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一 ...

  9. redis消息队列简单应用

    消息队列出现的原因 随着互联网的高速发展,门户网站.视频直播.电商领域等web应用中,高并发.大数据已经成为基本的标识.淘宝双11.京东618.各种抢购.秒杀活动.以及12306的春运抢票等,他们这些 ...

随机推荐

  1. 记录一次bug解决过程:git深入学习和JDK8新特性

    一 总结 熟悉廖雪峰git基础; 由于git跟踪的是修改,而不是版本号:因此对于修改撤销的操作,文件在eclipse中依旧有>修改标记,这点不同于svn. 二 BUG描述:熟悉Git基础 在Gi ...

  2. wamp 服务器安装问题 及cmd常用命令 和 php mysql数据库常用cmd命令集

    1   官网下载wamp软件包,根据提示安装 2   目录结构:   wamp:   bin/为套件目录 包括mysql apache php log   日志记录 alias 配置 apps 数据库 ...

  3. 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子

    一般情况下CSS不会直接影响JS的程序逻辑,但是以CSS实现动画的话,这个便不太确定了,这个故事发生在与UED迁移全局样式的过程. 曾经我有一段实现弹出层隐藏动画的代码是这个样子的: if (this ...

  4. react-native Simulator com+r不能刷新模拟器

    这个问题是我按了com + shift + K 调出Simulatior 的时候出现的, 然后虚拟机就刷新不了了, 怎么按com+r都不好使. 在Simulatior的菜单栏选择Hardware -- ...

  5. node.js+socket.io配置详解

    由于我是在win7的环境下,在这里就以win7系统为例进行讲解了. 首先需要在nodejs官网下载最新版的node.js,下载完毕直接安装即可,安装成功后在cmd命令行中执行node指令,如下结果就说 ...

  6. 玩转Podfile

    前言 经常使用CocoaPods来管理iOS项目中的第三方库,但是我们要使用CocoaPods来管理第三方库,前提是要写好Podfile文件,通过这个文件来配置第三方库与项目之间的依赖.版本等信息. ...

  7. php foreach引用赋值

    在写代码时发现php foreach引用赋值会导致意外的行为. 代码示例: <?php $arr = array('a','b','c'); foreach($arr as $k=>&am ...

  8. Python:版本升级

    Linux 上安装的python版本是2.6.6,不能满足我运行软件的要求,所以对python进行升级.现在要了解MySQL Fabric,需要使用Python 2.7,所以只能对现有版本进行升级了. ...

  9. CentOS7 配置LAMP

    这两天要带新同事.没办法,只有现学现卖,又回到Linux的怀抱了.今晚想配置一下LAMP环境,但是之前用的6.6,今晚想闷声做大死,用一次7试试.网上找了很多教程,但是好像转载的都不负责任,有些到下一 ...

  10. 烂泥:ubuntu 14.04搭建OpenVPN服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司分部需要连接公司内部的服务器,但是该服务器只允许公司内部的网络访问. 为了解决这个问题,打算使用VPN.对于VPN以前使用最多的是PPTP这个解决方案 ...