Wince环境下没有安装msmq组件,需要单独下载安装。
下载 Optional Windows Mobile 5.0 Server Components.exe 后在目录Optional Windows Mobile 5.0 Server Components/Optional Windows Mobile 5.0 Server Components/msmq下可得到msmq.arm.CAB
安装msmq.arm.CAB 要用到VisAdm.exe工具
VisAdm.exe工具在另一个开发包中,可以从微软下载。
使用VisAdm.exe时点击Shortcuts
进入下一个界面
点击 :Install (成功则不信息)
点击: Register (会显示 GUID 如果存在会提示)
重启后在点击 Verify
现在可以收发消息队列了
string path = @"FormatName:DIRECT=OS:yuxianye/private$/yu";
private void button1_Click(object sender, EventArgs e)
{
//System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue(@"china-8d5578550/private$/yu");
try
{
MessageQueue myQueue = new MessageQueue(path);
myQueue.Send(this.textBox1.Text);
myQueue.Close();
label1.Text ="发送成功";
}
catch (System.Messaging.MessageQueueException ex)
{
label1.Text = ex.Message;
}
}
private void button2_Click(object sender, EventArgs e)
{
MessageQueue myQueue = new MessageQueue(path);
((XmlMessageFormatter)myQueue.Formatter).TargetTypes = new Type[] { typeof(string) };
try
{
Message myMessage = myQueue.Receive(new TimeSpan(0));
textBox2.Text = myMessage.Body.ToString () ;
label1.Text = "接收成功";
}
catch (MessageQueueException ex)
{
label1.Text = ex.Message;
}
finally
{
myQueue.Close();
}
}
private void Form1_Load(object sender, EventArgs e)
{
//if (!MessageQueue.Exists(path))
// MessageQueue.Create(path);
}
以上实现在本机上收发,如果要给远程的服务器发,还要设置其他项。