WaitForExit () для внешней функции DLL - PullRequest
0 голосов
/ 08 ноября 2019

Я использую DLL из (PDF Creator Pilot) для манипулирования файлами PDF, все в порядке, но проблема в том, что этот процесс не WaitForExit, потому что второй шаг перемещает файл, а первый процесс делает ошибку. Итак, я использую WaitForExit для второго процесса, но я не знаю, как построить WaitForExit () для моей внешней функции.

Моя неверная догадка была //pdf.WaitForExit(XMLout);

Это для Windows 10, PDF Creator Pilot 4.3 x64, контролируемая среда

...
try
{
    PDFDocument4 pdf = new PDFDocument4();
    pdf.SetLicenseData("demo@demo", "demo");
    int fnt = pdf.AddFont("Verdana", false, false, false, false, fontCharset.fcANSI);
    pdf.Open(Path.GetFullPath(file),"");
    pdf.UseFont(fnt, 14.0f);
    pdf.ShowTextAt(20, 30, "Nro OC: " + fileName);
    pdf.ShowTextAt(20, 50, "Nro CO: " + "123456");
    pdf.SaveToFile(XMLfind + "\\"+ fileName, false);
    pdf = null;
    //pdf.WaitForExit(XMLout);
}
catch (Exception err)
{
    LogFile($"{DateTime.Now:u}|Error0 imposting data: {err.Message}|{file}");
}
try
{
    Process printing = new Process();
    printing.StartInfo.FileName = XMLprinter;
    printing.StartInfo.Arguments = string.Format(XMLarg, XMLrelease, Path.GetFullPath(file));
    printing.StartInfo.RedirectStandardOutput = true;
    printing.StartInfo.UseShellExecute = false;
    printing.Start();
    printing.WaitForExit(XMLout);
    printing.Close();
}
...

PDF не существует в исходном пути. (потому что процесс печати / перемещения был более быстрым)

...