C# распечатать в формате pdf и перекрыть процесс - PullRequest
0 голосов
/ 25 апреля 2020

Когда я печатаю файлы A.pdf и B.pdf, я запускаю этот код:

if (File.Exists(@"C:\Users\Luca\Desktop\A.pdf") == true && File.Exists(@"C:\Users\Luca\Desktop\B.pdf") == true)
        {
            using (PdfDocument one = PdfReader.Open(@"C:\Users\Luca\Desktop\A.pdf", PdfDocumentOpenMode.Import))
            using (PdfDocument two = PdfReader.Open(@"C:\Users\Luca\Desktop\B.pdf", PdfDocumentOpenMode.Import))
            using (PdfDocument outPdf = new PdfDocument())

            {
                CopyPages(one, outPdf);
                CopyPages(two, outPdf);

                outPdf.Save(@"C:\Users\Luca\Desktop\C.pdf");
            }
        }

, но программа показывает мне ошибку:

"System.IO.IOException: 'The process cannot access the 'C: \ Users \ Luca \ Desktop \ B.pdf' file because it is in use by another process.'.

Я пытаюсь использовать метод Task.Delay(500);, чтобы дать время для печати, но ошибка снова показывает

1 Ответ

1 голос
/ 25 апреля 2020

Причиной является то, что при открытии файла произошла ошибка, а поток файлов все еще открыт, но не закрыт Когда я столкнулся с подобной ошибкой, перезагрузка моего P C для закрытия всех приложений решила эту ошибку.

PS
Следующий код никогда не останавливает вашу программу.

Task.Delay(500);

У нас есть ждать завершения задачи.

Task.Delay(500).Wait();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...