C# - 线程池与任务

标签 c# threadpool task

有些人可能已经在 .NET 4.0 中看到,他们添加了一个新的命名空间 System.Threading.Tasks,这基本上就是一个任务。从使用 ThreadPool 开始,我只使用了几天。

哪个更高效且资源消耗更少? (或者总体上更好?)

最佳答案

Tasks 命名空间的目标是提供一个可插入的架构,使多任务应用程序更易于编写和更灵活。

该实现使用 TaskScheduler 对象来控制任务的处理。这具有虚拟方法,您可以重写这些方法以创建您自己的任务处理。方法包括例如

protected virtual void QueueTask(Task task)
public virtual int MaximumConcurrencyLevel

使用默认实现会有很小的开销,因为 .NET 线程实现有一个包装器,但我预计它不会很大。

有一个自定义 TaskScheduler 的(草案)实现,它在单个线程上实现多个任务 here .

关于C# - 线程池与任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1774670/

相关文章:

C# label AutoSize 添加padding

c# - 更新父实体不会更新子实体

c# - Electron-Edge-JS App.config

java - CDI 是否为 RequestScoped 重用代理?

c# - 线程上下文和同步上下文

c# - 在 C# 中取消声明变量

c# - async/await 如何帮助 ASP.Net 应用程序?

c# - 挂断异步 TCP 客户端连接

c# - 为什么 Task.WhenAll 不工作?

c# - 通过同步运行任务来防止死锁 - Windows 服务