C# 如何使用TPL处理长时间运行的流程

C# 如何使用TPL处理长时间运行的流程,c#,task-parallel-library,long-running-processes,C#,Task Parallel Library,Long Running Processes,我最近开始在C#学习第三方物流。我们有一个windows服务,它提供一些功能 I have to perform each job paralelly rather than sequentially. 完成每项工作需要10分钟以上。因此,我认为这是一个长期运行的过程。 因此,我想我不会为此创建线程池,因为它是针对短时间线程的 如何使用TPL处理长时间运行的任务。假设我有100份工作要处理 Do i need to create 100 tasks for long running proc

我最近开始在C#学习第三方物流。我们有一个windows服务,它提供一些功能

I have to perform each job paralelly rather than  sequentially.
完成每项工作需要10分钟以上。因此,我认为这是一个长期运行的过程。

因此,我想我不会为此创建线程池,因为它是针对短时间线程的

如何使用TPL处理长时间运行的任务。假设我有100份工作要处理

Do i need to create 100 tasks for long running process ?

请澄清以上内容。

使用
TaskCreationOptions.longlunning
。它是为可能混淆线程池启发式的长期运行工作而设计的。从.NET4.5开始,它总是在新线程上运行代码。您仍然可以使用所有其他TPL功能。

您是否在创建任务时尝试指定
TaskCreationOptions.LongRunning
?那么它可能不会使用线程池……长时间运行的进程是CPU绑定的进程还是I/O绑定的进程?这是CPU绑定的进程?假设我有大量作业要处理,我不需要创建100个线程吗?@JohnSKeet。如果我有很多作业要处理,它会创建很多线程吗?