【问题标题】:which threading concept is advisable to use in windows service建议在 Windows 服务中使用哪个线程概念
【发布时间】:2014-03-04 12:44:06
【问题描述】:

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

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

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

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

对于上述标准,

我使用线程。在 .net 4.0 中,许多概念是可用任务、任务并行库、线程和线程池。在这 4 种中,哪一种最适合 Windows 服务。

注意:

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

【问题讨论】:

    标签: c# multithreading windows-services


    【解决方案1】:

    在 .net 4.0 中许多概念是可用的任务、任务并行库、线程和线程池

    任务是任务并行库(TPL)的基本单元。
    尤其是 TPL,它使用线程池来调度其任务(但这不是强制性的)。
    线程池使用线程来执行一些工作。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2012-07-16
    • 1970-01-01
    • 2014-02-25
    • 2013-09-07
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多