哪个线程概念建议在windows服务中使用

时间:2014-02-07 07:47:39

标签: c# multithreading windows-services

我有一个长时间运行的代码(EG。获取远程机器的详细信息)。这需要3分钟才能完成。我正在使用以下

  1. 异步,需要获取每台远程机器的详细信息。

  2. 在短时间内,它需要检索所有远程机器的详细信息(例如,通过线程概念在3分钟内检测1000台机器)。

  3. 每3分钟扫描一次远程机器。为此,我使用Windows服务。

  4. 对于上述标准,

    我使用了线程。在.net 4.0中,许多概念都是可用的任务,任务parellel库,线程和线程池。其中4个最适合Windows服务。

    注意:

    有些人建议在论坛中不建议在Windows服务中使用线程池。因为Windows服务中的onstop()无法正常工作。因为它一直等到线程池完成它才能工作。

1 个答案:

答案 0 :(得分:1)

  <。>在.net 4.0中,许多概念都是可用的任务,任务parellel库,线程和线程池

任务是任务并行库(TPL)的基本单元 特别是TPL使用线程池来安排其任务(但这不是强制性的) 线程池使用线程来执行一些工作。

因此,线程没有太多概念,“可取”一词在这里不适用 将它们视为“线程”概念之上的抽象级别。 我建议你从最高级别(TPL)开始。从任务描述中,PLINQ看起来对您有用。