我有一个程序可以将文档发送到 pdf 打印机驱动程序,并且该驱动程序会打印到特定目录。打印后,我想将 pdf 附加到电子邮件 (MailMessage) 并发送出去。
现在,我将文档发送到打印机(它会产生一个新进程),然后调用 FileSystemWatcher.WaitForChanged(WaitForChangedResult.Created) 但是当创建对象时,它仍然没有完成“打印”并且 pdf 打印机仍然有一个锁定它,当我尝试将该文件附加到电子邮件时抛出错误。
- 我考虑过一个普通的 Thread.Sleep(2000) 或其他什么,但这远不理想。
- 我考虑将附件代码放在 try/catch 块中并在失败时循环,但同样,这只是个坏消息。
我真的想不出一个优雅的解决方案。