C#操作消息队列
2024-07-21 02:19:32
供稿:网友
 
public class queuemanage
 {
 /// 
 /// 发送对象到队列中
 /// 
 /// 队列名称,因为队列名称在一个应用中应该不改变的,所以大家最好写在配置文件中
 /// 要发出去的对象
 public static void sendqueue(string queuepath,mybase.smsqueue sq)
 {
 system.messaging.messagequeue mqsend=new system.messaging.messagequeue(queuepath,false);
 ensurequeueexists(queuepath);
 mqsend.send(sq);
 }
 /// 
 /// 检查队列,如果队列不存在,则建立
 /// 
 /// 队列名称
 private static void ensurequeueexists(string path)
 {
 if(!messagequeue.exists(path))
 {
 if(!messagequeue.exists(path))
 {
 messagequeue.create(path);
 messagequeue mqtemp=new messagequeue(path);
 mqtemp.setpermissions("everyone",system.messaging.messagequeueaccessrights.fullcontrol);
 ///不知道该给什么样的权限好,所以就给了everone全部权限了,当然大家最好自己控制一下
 }
 }
 }
 /// 
 /// 从队列中取出对象列表
 /// 
 /// 队列名称
 public static system.collections.arraylist getmessage(string queuepath)
 {
 mybase.smsqueue sq=new mybase.smsqueue();
 system.messaging.messagequeue mq=new system.messaging.messagequeue(queuepath,false);
 mq.formatter=new xmlmessageformatter(new type[] {typeof(mybase.smsqueue)});
 system.messaging.message[] arrm=mq.getallmessages();
 mq.close();
 system.collections.arraylist al=new system.collections.arraylist();
 foreach(system.messaging.message m in arrm)
 {
 sq=(timefound.smsgate.base.smsqueue)m.body;
 al.add(sq);
 }
 return al; 
}
 }
从以前的一个项目中摘抄出来的,大家参考一下吧。