C# 仅限子流程的4个实例

C# 仅限子流程的4个实例,c#,.net,async-await,task-parallel-library,C#,.net,Async Await,Task Parallel Library,考虑以下代码 using System.Threading.Tasks; using System.Collections.Generic; using HiQPdf; namespace bla { class Program { private static List<Task> tlist = new List<Task>(); static void Main(string[] args)

考虑以下代码

using System.Threading.Tasks;
using System.Collections.Generic;
using HiQPdf;

namespace bla 
{
    class Program 
    {
        private static List<Task> tlist = new List<Task>();

        static void Main(string[] args) 
        {
            for (int i = 0; i < 21; i++) 
            {
                tlist.Add(Task.Run(() => 
                {
                    var r = new HtmlToPdf();
                    var pdf = r.ConvertUrlToMemory("google.com");
                }));
            }
            Task.WaitAll(tlist.ToArray());
        }
    }
}
使用System.Threading.Tasks;
使用System.Collections.Generic;
使用HiQPdf;
名称空间bla
{
班级计划
{
私有静态列表tlist=新列表();
静态void Main(字符串[]参数)
{
对于(int i=0;i<21;i++)
{
tlist.Add(Task.Run)(()=>
{
var r=新的HtmlToPdf();
var pdf=r.converturltomery(“google.com”);
}));
}
Task.WaitAll(tlist.ToArray());
}
}
}
这将创建20个HiQPDF实例,创建google的图像。问题是,HiQPDF创建了一个HiQPDF.dep和HiQPDF.rda的实例,它们执行实际工作。并行HiQPDF进程的最大数量似乎是4个。这是一个相当长的过程,对我想做的事情至关重要

我想要的是增加4个并发进程的限制


我试着使用
Parallel.ForEach()
.AsParallel().ForAll()
,不同的
线程实现
,但对增加并行运行的进程的实际数量没有任何帮助。我开始认为这是Windows 10的一个限制。

在库中快速检查显示
HtmlToPdf的默认值。MaxParallelConversions
为4。我认为你应该增加它:

HtmlToPdf.MaxParallelConversions = 20;

您认为最大值为4的症状可能重复?您是否查看了默认值?这是解决方案。非常感谢。