日期:2014-05-17  浏览次数:20743 次

求指导线程问题
有个任务 不定时的产生一些数据,需要一个线程去处理,现在我考虑2种方式:
1.使用一个一直在运行的线程,有任务时候处理数据(线程利用一个全局队列判断是否有数据需要处理),没数据的时候执行sleep。
2.当有任务的时候,先判断该线程是否在运行,如果没运行就创建一个并开始运行;这样当一直没有任务的时候,该线程就不会运行。

请问这2种方式那种比较好,还有没有更好的方法,谢谢大家了....

------解决方案--------------------
 参考读者写者问题。
设置一个队列,作为零界资源。写完了notify。处理线程就运行了。处理线程把队列中的都处理掉了,就wait,等待写者的notify
------解决方案--------------------
何必这么纠结呢?

直接用
ThreadPool.QueueUserWorkItem(你的任务方法就行了);