c# - 一起使用任务和线程池可以吗?

标签 c# .net multithreading task-parallel-library .net-4.5

在阅读 this 中线程池和任务的工作原理后文章我想到了这个问题 -

如果我有一个复杂的程序,其中一些模块使用tasks,一些模块使用thread pool,有没有可能因为用途不同会出现一些调度问题?

最佳答案

任务通常使用线程池来实现(当然也可以使用其他类型的调度程序来执行任务,这些调度程序提供不同的行为,但这是默认设置)。就实际执行的代码而言(假设您的任务代表正在运行的委托(delegate))确实没有太大区别。

任务只是围绕该线程池调用创建一个包装器,以便在收集有关该异步操作的信息和处理该异步操作的结果时提供额外的功能。如果您想利用该附加功能,请使用任务。如果在某些特定的上下文中不需要使用它,那么直接使用线程池也没有错。

混合两者,只要您从这些操作的结果中得到您想要的东西没有问题,就根本不是问题。

关于c# - 一起使用任务和线程池可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729803/

相关文章:

.net - .NET Web API 中的多个 url 级别

Java newSingleThreadExecutor 与带有队列的自有线程

java - 在 android 中暂停一个类并开始另一个类,反之亦然

c# - 桌面复制API捕获特定窗口

c# - IIS 和 Parallel.ForEach

c# - 如何以编程方式在 EPiServer 10 中将页面设置为 "translate"

c# - 将日期时间格式化为特定格式

.net - 列表框未选择所选项目

c# - 执行按钮单击时使 wpf UI 响应

c# - 如何从表单中隐藏外键值