Я не уверен, если это связано с поточностью или нет.
Я печатаю этикетки на стандартном принтере Windows.Метка рисуется в GDI и затем передается другому объекту, который печатает его в фоновом потоке.
Я использую BackgroundWorker для этого процесса.LabelPrinter.Print(Label as PrintLabel)
запускает backgroundWorker и передает ему данные метки.Обработчик событий PrintPage отображает страницу и отправляет ее на принтер.
Проблема заключается в том, что пользователи иногда получают сообщение об ошибке:
System.Drawing.Printing.InvalidPrinterException: Settings to access printer '\\printserver\label' are not valid.
at System.Drawing.Printing.PrinterSettings.GetHdevmodeInternal()
at System.Drawing.Printing.PrinterSettings.GetHdevmode(PageSettings pageSettings)
at System.Drawing.Printing.PrintController.OnStartPrint(PrintDocument document, PrintEventArgs e)
at System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument document, PrintEventArgs e)
at System.Drawing.Printing.PrintController.Print(PrintDocument document)
at System.Drawing.Printing.PrintDocument.Print()
Пользователи получают это только изредка, хотя мне сообщилихуже, когда там печатают несколько этикеток подряд (несколько минут между этикетками).Они смогут печатать этикетки весь день, когда они неожиданно нажмут эту ошибку и получат ее 4 или 5 раз, тогда проблема, как правило, исчезнет.