限制为 4 个子流程实例
Limited to 4 instances of sub process
考虑以下代码。
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());
}
}
}
这将创建 20 个 HiQPDF 实例,从而创建 google 的图像。事实是,HiQPDF 创建了一个 HiQPDF.dep 和 HiQPDF.rda 的实例,它们执行实际工作。并行 HiQPDF 进程的最大数量似乎是 4。这是一个相当长的过程,对我想做的事情至关重要。
我想要的是增加4个并发进程的限制。
我尝试使用 Parallel.ForEach()
和 .AsParallel().ForAll()
,Threading
的不同实现,但对增加并行 运行 的实际进程数没有任何帮助。我开始认为这是 Windows 10.
的限制
库中的快速检查显示 HtmlToPdf.MaxParallelConversions
的默认值是 4。我认为你应该增加它:
HtmlToPdf.MaxParallelConversions = 20;
考虑以下代码。
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());
}
}
}
这将创建 20 个 HiQPDF 实例,从而创建 google 的图像。事实是,HiQPDF 创建了一个 HiQPDF.dep 和 HiQPDF.rda 的实例,它们执行实际工作。并行 HiQPDF 进程的最大数量似乎是 4。这是一个相当长的过程,对我想做的事情至关重要。
我想要的是增加4个并发进程的限制。
我尝试使用 Parallel.ForEach()
和 .AsParallel().ForAll()
,Threading
的不同实现,但对增加并行 运行 的实际进程数没有任何帮助。我开始认为这是 Windows 10.
库中的快速检查显示 HtmlToPdf.MaxParallelConversions
的默认值是 4。我认为你应该增加它:
HtmlToPdf.MaxParallelConversions = 20;