程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 在ASP.NET中進行消息處理(MSMQ) 三

在ASP.NET中進行消息處理(MSMQ) 三

編輯:關於ASP.NET

在本文的前兩篇文章裡對MSMQ的相關知識點進行了介紹,很多閱讀過這前兩篇文章的朋友都曾問到過這樣一些問題:

1、如何把MSMQ應用到實際的項目中去呢?

2、可不可以介紹一個實際的應用實例?

3、......

在前兩篇文章裡,關於MSMQ常用的技術點基本介紹完畢了,本文主要以MS開源項目PetShop中的MSMQ應用作為案例來介紹MSMQ在實際項目中的應用。在PetShop裡,由於系統使用了多線程的專用應用程序來監控消息隊列,在進入PetShop應用分析前,我們先來了解下關於多線程和MSMQ的相關知識點。

一、多線程和MSMQ

現在有這樣一個需求,指定的消息隊列裡不管有無消息數據,我們通過一個多線程來監控這個隊列,一但隊列裡的數據發生變化就做出相應的處理,比如把消息讀取出來。根據這個需求,我們來做個示例,用一多線程把隊列監控起來,如果隊列裡有消息數據,就把消息讀取出來,如果沒有則一直監視隊列,當隊列數據發生改變(有新的消息加入)的時候就作出處理(讀取消息)。

首先定義一個線程數組用於存儲線程數;

1static private int ThreadNumber = 5; //5個線程序
2static private Thread[] ThreadArray = new Thread[ThreadNumber];

我們把需要啟動的線程裝載入ThreadArray數組,通過一個遍歷數組把所以的線程啟動,實際這裡只有5個線程。

1private void button1_Click(object sender, EventArgs e)
2{
3  StartThreads();
4}
5
6private void StartThreads()
7{
8  int counter; //線程計數
9  for (counter = 0; counter < ThreadNumber; counter++)
10  {
11    ThreadArray[counter] = new Thread(new ThreadStart(MSMQListen));
12    ThreadArray[counter].Start();
13    this.richTextBox2.Text += (counter + 1).ToString() + "號線程開始!";
14  }
15}
16
17private void MSMQListen()
18{
19  while (true)
20  {
21    //取出隊列裡的消息
22    MessageBox.Show(MsgQueue.ReceiveMessage());
23  }
24}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved