MSMQ小Demo

Demo基于http://www.cnblogs.com/zhili/p/MSMQ.html

Server代码:

using System.Messaging;
using System.Text;
using System.Threading.Tasks;

namespace MSMQServer
{
    class Program
    {
        static void Main(string[] args)
        {
            const string messageQueuePath = @".\Private$\MyPrivateMessageQueue";
            if (!MessageQueue.Exists(messageQueuePath))
            {
                using (MessageQueue mq = MessageQueue.Create(messageQueuePath))
                {
                    mq.Label = "";
                    Console.WriteLine("已创建一个私有信息队列。");
                    Console.WriteLine("消息队列名称:{0}",mq.QueueName);
                    Console.WriteLine("消息队列路径:{0}",mq.Path);
                    mq.Send("My First MessageQueue Message ");
                }
            }

            if (MessageQueue.Exists(messageQueuePath))
            {
                using (MessageQueue mq = new MessageQueue(messageQueuePath))
                {
                    Console.WriteLine("消息队列名称:{0}", mq.QueueName);
                    Console.WriteLine("消息队列路径:{0}", mq.Path);
                    mq.Send("My Second MessageQueue Message !");
                }

            }

            Console.ReadKey();
        }
    }
}

Client代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Messaging;
using System.Text;
using System.Threading.Tasks;

namespace MSMQClient
{
    class Program
    {
        static void Main(string[] args)
        {
            const string messageQueuePath = @".\Private$\MyPrivateMessageQueue";
            if (MessageQueue.Exists(messageQueuePath))
            {
                using (MessageQueue mq=new MessageQueue(messageQueuePath))
                {
                    mq.Formatter=new XmlMessageFormatter(new string[]{"System.String"});
                    int i = 0;
                    foreach (var message in mq.GetAllMessages())
                    {
                        Console.WriteLine("My  MessageQueue Message {0} :{1}", i, message.Body);
                        i++;
                    }

                    var msg = mq.Receive();
                    Console.WriteLine("My First Receive MessageQueue Message  Is :{0} ", msg.Body);
                }
            }

            Console.ReadKey();
        }
    }
}
时间: 2024-10-05 12:57:23

MSMQ小Demo的相关文章

Nancy之基于Self Hosting的补充小Demo

前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self Hosting Nancy.和Owin 下面的Self Hosting作个补充. 首先是Self Hosting Nancy的补充: 这里主要是介绍一下Topshelf 官网:http://topshelf-project.com/ GitHub地址:https://github.com/Topshe

用backbone实现的一个MVC的小demo

一.Apache配置 本实例需要使用php支持.要现在Apache中配置虚拟目录,在Apache下的httpd-vhosts.conf文件中添加如下代码 <VirtualHost *:80> DocumentRoot "D:/htdocs/backbone_demo" ServerName www.backbonedemo.cn </VirtualHost> 在windows的hosts文件中添加配置,hosts文件的位置在c:\windows\system32

结对项目小DEMO

这次小DEMO主要实现下面两个功能: 实现两个页面的相互跳转 通过多线程实现网络发送请求 本人负责界面与说明文档编写,搭档负责java代码的具体实现. xml代码: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_

React问答小demo

在学习react初期,看了一些视频和资料,react基础知识差不多学完,跟着网上的一个教程,做了一个小型的问答demo. 需求看图说: 1.点击"添加"按钮,显示问题输入表单,再次点击,隐藏表单.同时,点击"取消"按钮,隐藏表单. 2.输入问题标题和内容后,点击"确认"按钮,将问题显示在下方(按照投票数从高到低). 3.每个问题有加票和减票功能,在点击的同时,将问题按照投票数从高到低排序. 实现过程: 一.开发环境和工具 1.npm init (

Nancy之基于Nancy.Owin的小Demo

前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katana 什么是Owin呢? 官网地址:http://owin.org OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application. 什么是Katana呢? 官网地址:http://kata

第一个spring小demo

工作中用spring有一年多了,基本弄懂了bean配置文件的配置,但是却没有对spring配置文件,加载有更多的认识,今天动手写了第一个spring的小demo. 这个demo之前是想做web版的,但是web的启动比较麻烦,不如直接使用main方法执行直观,所以,就使用main方法来读取配置文件,启动spring. 看一下项目的结构  其中src部分是项目源码 和 配置文件applicationContext.xml WebContent 目录下面的WEB-INF/lib 目录下面存放的是spr

利用block完成回调,小demo一个

利用block完成回调,小demo一个.闲话少说,直接上代码了!O(∩_∩)O~ TestObject.h #import <Foundation/Foundation.h> typedef void (^FinishBlock)(NSString *backStr); @interface TestObject : NSObject //能进行回调的方法 - (void)playSomeTime:(FinishBlock)block; @end TestObject.m #import &q

新手 gulp+ seajs 小demo

首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1.首先,务必先说明,本demo是基于nodeJs环境下开发的,因此要安装nodeJs(地址:https://nodejs.org/en/): 2.接下来安装gulp: 在第一步成功的情况下,安装gulp构建工具,并且将其依赖到项目进来:同时需要安装browser-sync,gulp-seajs-co

Win10 FaceAPI小demo开发问题汇总

最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRandomAccessStream转换 sdk需要的是Stream,拍照直接获取到的类型是IRandomAccessStream,虽然可以转换,但IRandomAccessStream转换为Stream之后使用的时候会出现异常, 希望大神看到肯赐教,不胜感激 解决方法是使用FileOpen方法,将图片的路径作为参数传递给方法 MSDN网页上的为Group