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

來源:互聯網
上載者:User

在本文的前兩篇文章裡對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}56private 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}1617private void MSMQListen()18{19  while (true)20  {21    //取出隊列裡的訊息22    MessageBox.Show(MsgQueue.ReceiveMessage());23  }24}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.