2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MSMQ消息队列线程使用

MSMQ消息队列线程使用

时间:2022-06-06 16:24:03

相关推荐

MSMQ消息队列线程使用

MSMQ消息队列线程使用

接手一新项目,写一个服务。一个线程间断调用webservice返回XML分解放入消息队列中,另一个线程抓消息队列中的消息生成Request调Webservice外发。其中对消息队列的安装不说。

代码 1//跨线程的全局定义

2MessageQueuequeue=newMessageQueue(@".\private$\hrsReservation");

3queue.Formatter=newXmlMessageFormatter();

4

5//线程一里包括分解xml装入消息队列的操作

6Messagemsg=newMessage();

7msg.Formatter=queue.Formatter;

8msg.Label="hrs";

9msg.Body=resProcess;

10queue.Send(msg);

11

12//线程二里包括取出消息操作

13if(!MessageQueueProcess.IsQueueEmpty(queue))

14{

15MessagerecivedMsg=queue.Receive();

16}

17else

18{

19Thread.Sleep(ConfigerFile.RefreshTime)

20}

21

22//消息判空

23classMessageQueueProcess

24{

25publicstaticboolIsQueueEmpty(MessageQueuemq)

26{

27boolIsQueueEmpty=false;

28

29try

30{

31mq.Peek(newSystem.TimeSpan(0));

32}

33catch(MessageQueueExceptione)

34{

35if(e.MessageQueueErrorCode==MessageQueueErrorCode.IOTimeout)

36{

37IsQueueEmpty=true;

38}

39}

40returnIsQueueEmpty;

41}

42}

似乎队列为空的情况下peek或者recieve方法会挂起,所以应该不需要判空sleep。而且调试中出现了挂起,不过不知道会不会引发其他的问题,因为对此不甚了解。所以就人为控制了。哪位老鸟精通此道,望不略赐教。

posted on -01-20 15:26 生活就是点点滴滴 阅读(...) 评论(...) 编辑 收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。