熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#操作消息隊列的代碼

2022-06-13   來源: .NET編程 
  這是一個關於C#操作消息隊列的代碼給新手朋友學習下並不是很難相信大家看看就能明白的
  public class QueueManage
  {
  ///
  /// 發送對象到隊列中
  ///
  ///
  隊列名稱因為隊列名稱在一個應用中應該不改變的所以大家最好寫在配置文件中
  ///
  要發出去的對象
  public static void SendQueue(string QueuePathMyBaseSmsQueue sq)
  {
  SystemMessagingMessageQueue mqSend=new SystemMessagingMessageQueue(QueuePathfalse);
  EnsureQueueExists(QueuePath);
  mqSendSend(sq);
  }
  ///
  /// 檢查隊列如果隊列不存在則建立
  ///
  ///
  隊列名稱
  private static void EnsureQueueExists(string path)
  {
  if(!MessageQueueExists(path))
  {
  if(!MessageQueueExists(path))
  {
  MessageQueueCreate(path);
  MessageQueue mqTemp=new MessageQueue(path);
  mqTempSetPermissions(EveryoneSystemMessagingMessageQueueAccessRightsFullControl);
  ///不知道該給什麼樣的權限好所以就給了Everone全部權限了當然大家最好自己控制一下
  }
  }
  }
  ///
  /// 從隊列中取出對象列表
  ///
  ///
  隊列名稱
  public static SystemCollectionsArrayList GetMessage(string QueuePath)
  {
  MyBaseSmsQueue sq=new MyBaseSmsQueue();
  SystemMessagingMessageQueue mq=new SystemMessagingMessageQueue(QueuePathfalse);
  mqFormatter=new XmlMessageFormatter(new Type[] {typeof(MyBaseSmsQueue)});
  SystemMessagingMessage[] arrM=mqGetAllMessages();
  mqClose();
  SystemCollectionsArrayList al=new SystemCollectionsArrayList();
  foreach(SystemMessagingMessage m in arrM)
  {
  sq=(TimeFoundSmsGateBaseSmsQueue)mBody;
  alAdd(sq);
  }
  return al;
  }
  }
From:http://tw.wingwit.com/Article/program/net/201311/15097.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.