Ограничено 4 экземплярами подпроцесса - PullRequest
0 голосов
/ 25 мая 2018

Рассмотрим следующий код.

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.

1 Ответ

0 голосов
/ 26 мая 2018

Быстрая проверка в библиотеке показывает, что значение по умолчанию для HtmlToPdf.MaxParallelConversions равно 4. Я думаю, вам следует увеличить его:

HtmlToPdf.MaxParallelConversions = 20;
...