【发布时间】:2015-12-30 23:11:31
【问题描述】:
一些友好的灵魂能指引我正确的方向吗?
基本上我想要实现的是在 Web 应用程序启动期间做一些工作。主要是热身活动和设置任务。
这些任务是相互独立的,它们不共享任何状态,所以我认为同时运行它们可能是个好主意。
到目前为止我的解决方案如下:
public void Execute()
{
IEnumerable<IStartupTask> startupTasks = PrepareStartupTasks();
Task.Factory.StartNew(httpContext =>
{
HttpContext.Current = httpContext as HttpContext;
Parallel.ForEach(startupTasks, startupTask => startupTask.Execute());
}, HttpContext.Current);
}
我想要实现的是尽可能快地在线程池线程上运行这个独立的工作并完成预热。
这是应用程序启动,因此我没有必要异步运行它们,尽管其中一些任务会执行一些 I/O(主要是 API 调用)。
这是在引导过程中分拆一些工作的好方法吗?似乎有效,但我可能会错过一些潜在的陷阱,这就是我在这里的原因:)
提前致谢
【问题讨论】:
标签: c# .net asp.net-mvc task-parallel-library