就是想用ASP.NET写一个永久运行的线程用于监听一个队列,一旦队列有内容则将其取出并进行相应的处理。我有在global.asax中创建一个线程来跑,但是CPU会占用很高(很简单的处理逻辑),后面改成使用定时器,好很多但是会时不时的自动重启一样还是很不稳定。求哪位高手能指点一下。越详细越好,急需谢谢。

解决方案 »

  1.   

    “永久运行的线程用于监听一个队列”,你又是从哪位 java 教师的口中听到的“设计”吧?你知道事件吗?如果你觉得你的队列改变时不能触发事件,那么你可以自己继承队列类型并在子类型中为其加入事件通知机制,当加入数据时抛出事件通知。要什么“永久运行的线程用于监听”这种话都是那些从来不知道事件概念的刚学 java 学生才爱说的,因为他们基本上是自学的“设计模式”里边的雷人的名词,而GOF(四人帮)写那个书的那个时候根本不懂事件,否则也就不会有20多种模式(有5种就足够了),而且也就不会有后来的AOP等等。
      

  2.   

    什么“生产者-消费者”模型太土、太容易乱套用、太胡搞线程了。在.net中你应该学习.net的机制,编写简单而高效率、清晰的程序。这种模式是用不着什么线程、死循环的。