学习MSMQ期间做的测试程序。
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.Xml.Serialization;
using
System.IO;
namespace
msmqApp
{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } int iCount = 0; /**//// <summary> /// 发送文字。 /// </summary> private void btnSend1_Click(object sender, EventArgs e) { iCount++; try { msgq1.Send("Message Contents: "+iCount); } catch(Exception ex) { MessageBox.Show(ex.Message); } } /**//// <summary> /// 接收文字。 /// </summary> private void btnReceive1_Click(object sender, EventArgs e) { System.Messaging.Message m; string str; try { m = msgq1.Receive(new TimeSpan(0, 0, 3)); str=(string)m.Body; } catch { str = "没有返回消息。"; } MessageBox.Show(str); } /**//// <summary> /// 发送一个类。 /// </summary> private void btnSendClass_Click(object sender, EventArgs e) { Student no1 = new Student(); no1.name = "my"; no1.age = 20; no1.sex = "男"; Student no2 = new Student(); no2.name = "朋友1"; no2.age = 21; no2.sex = "女"; Student no3 = new Student(); no3.name = "朋友2"; no3.age = 22; no3.sex = "男"; no1.friends.Add(no2); no1.friends.Add(no3); System.Messaging.Message m = new System.Messaging.Message(); m.Body = no1; try { msgq1.Send(m); } catch(Exception ex) { MessageBox.Show(ex.Message + " " + ex.InnerException.Message); } } /**//// <summary> /// 接收一个类。 /// </summary> private void btnReceiveClass_Click(object sender, EventArgs e) { System.Messaging.Message m; Student st; try { m=msgq1.Receive(new TimeSpan(0,0,3)); m.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(Student) }); st = (Student)m.Body; string str = " name:"+st.name; str += "\r\n age:"+st.age; str += "\r\n sex:" + st.sex; str += "\r\n friends:\r\n"; foreach (Student friend in st.friends) { str += "[name:" +friend.name; str += " age:" + friend.age; str += " sex:" + friend.sex+"]\r\n"; } MessageBox.Show(str); } catch(Exception ex) { MessageBox.Show(ex.Message); } } /**//// <summary> /// 发送图片 /// </summary> private void btnSendImage_Click(object sender, EventArgs e) { Stream imgStream; System.Messaging.Message mImg = new System.Messaging.Message(); openFileDialog1.Filter = "ImageFile(*.bmp,*.jpg,*.gif)|*.bmp;*.jpg;*.gif"; openFileDialog1.FilterIndex = 1; if (openFileDialog1.ShowDialog() == DialogResult.OK) { if ((imgStream = openFileDialog1.OpenFile()) != null) { mImg.BodyStream = imgStream; try { msgq1.Send(mImg); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { imgStream.Close(); } } } } /**//// <summary> /// 接收图片 /// </summary> private void btnReceiveImage_Click(object sender, EventArgs e) { Bitmap bmp; Stream imgStream; System.Messaging.Message mImg = new System.Messaging.Message(); bool bReceive = false; try { mImg = msgq1.Receive(new TimeSpan(0, 0, 3)); bReceive = true; } catch { MessageBox.Show("没有接收到消息。"); } try { if (bReceive) { imgStream = mImg.BodyStream; bmp = new Bitmap(imgStream); pictureBox1.Image = bmp; } } catch(Exception ex) { MessageBox.Show(ex.Message); } } Student类#region Student类 public class Student { public string name; public System.Collections.ArrayList friends; public int age; public string sex; public Student() { friends = new System.Collections.ArrayList(); } } #endregion }}
要使用MSMQ必须安装win消息队列组件。
转载于:https://www.cnblogs.com/tuyile006/archive/2008/03/11/1100275.html
相关资源:DirectX修复工具V4.0增强版
转载请注明原文地址: https://win8.8miu.com/read-1486757.html