0

我正在使用任务并行库Parallel.ForEach()来执行一些后台任务。我遇到了 Phil Haack 的 WebBackGrounder 应用程序。我想实现它,但只支持DoWork方法而不支持动作。关于如何在上下文中使用它的任何想法都将非常有用。否则我应该编写自己的类来处理这些操作。JobHostThreading.TaskParallel.ForEach

我的并行每种方法如下:

IList<object> tasks = FetchActiveTasks();

OrderablePartitioner<Tuple<int, int>> chunkPart = Partitioner.Create(0, tasks.Count(), NoOfPartitions);

Parallel.ForEach(chunkPart, chunkRange =>
{
    for (int i = chunkRange.Item1; i < chunkRange.Item2; i++)
    {
        try
        {
            if (!state.IsExceptional)
            {
                PerformTask(tasks[i]); // Method that carries out actual work.
            }
        }
        catch (Exception e)
        {
            exceptions.Enqueue(e);
        }                  
    }
});
4

0 回答 0