【发布时间】:2013-05-22 06:57:14
【问题描述】:
我有一个 .NET 库,它在内部使用 ParallelQueryable 和 Parallel.ForEach 来并行化计算。
现在,WebApi 应用程序正在使用该库。我知道 WebApi 使用异步上下文来防止对当前请求的并发访问。我的问题是,WebApi 对这个上下文的使用是否会以任何方式影响库的内部并行计算(例如,是否都必须在“GUI”线程上执行延续?)?
【问题讨论】:
-
在 Web API 主机上使用
Parallel.For不是一个好习惯 - 除非该过程可能需要几分钟,在这种情况下最好使用其他选项。它会窃取 ASP.NET 使用的相同线程,因此可能导致线程饥饿。 -
@Aliostad:在这种情况下,WebApi 服务器的存在是为了将可能长时间运行的计算作为 Web 服务运行的库方法公开。您是否建议多线程库代码作为自己的进程运行?
-
没这么说。我是说服务器上的多线程不是很好。你需要小心。
标签: c# asp.net-web-api task-parallel-library