Выполните несколько задач в определенном порядке.C#

Место общения программистов C#
Ответить
Anonymous
 Выполните несколько задач в определенном порядке.

Сообщение Anonymous »

У меня есть приложение WPF, которое собирает и печатает несколько файлов PDF в определенном порядке на онлайн-принтере. Проблема в том, что это занимает очень много времени: одна страница занимает около 10 секунд, а весь процесс - до 10 минут.
Я пытался запустить все задачи, а затем ждать Task.WhenAll, но тогда он не попадает в тот порядок, в котором я создал и запустил задачу, из-за того, что некоторые файлы больше других, и он завершается и отправляется на принтер раньше.
Я хотел бы запустить все задания на печать (Printdocument) и до того, как сработает событие EndPrint (отправляется в очередь) дождаться завершения задач, начатых ранее, прежде чем сможет завершиться следующая задача в очереди. Пытался прослушать событие PagePrint, и когда HasMorePages == false, дождитесь выполнения задачи с индексом-1, но не запустите ее. У кого-то была подобная проблема и есть ли решение?
foreach(var file in files)
PrintJob(file);

public static void PrintJob(File file)
{
var doc = file.PdfDocument.GetPrintDocument(SettingsPrinter.DefaultSettings);
doc.Print();
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... ific-order
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»