У меня есть Label API, в котором я использую b-PAC SDK для печати на принтере этикеток.
В этом случае давайте скажем, 5 человек печатают на одном принтере этикеток с одним и тем же шаблоном с интервалом не более 10 секунд.
Но Open() и EndPrint() иногда занимает целую вечность даже всего 50 минут на завершение.
В этом случае метод Open() занимает 40 секунд, а метод EndPrint() — 50 секунд.
Это означает, что печать запроса к моему API этикеток занимает около 2 минут.
Во многих случаях общая продолжительность печати превышает 30 минут.
См. ведение журнала для этого примера:

public void Print(string printer, string label, int copyCount, Settings settings, ILogger _logger) {
bpac.DocumentClass doc = new bpac.DocumentClass();
using (ITimer timer = _logger.Time("Open Template")) {
if (!doc.Open(string.Format(_pathTemaplate, label))) {
throw new Exception("Document couldn't be opened");
}
}
using (ITimer timer = _logger.Time("Set Printer")) {
if (!doc.SetPrinter("{printer}", false)) {
throw new Exception("Couldn't set printer");
}
}
foreach (KeyValuePair kv in settings.Data) {
bpac.IObject field = doc.GetObject(kv.Key);
if (field == null) {
continue;
}
field.Text = kv.Value;
}
PrintOptionConstants options = PrintOptionConstants.bpoDefault;
try {
using (ITimer timer = _logger.Time("Start Print")) {
doc.StartPrint(label, options);
}
using (ITimer timer = _logger.Time("Printing")) {
for (int i = 0; i < copyCount; i++) {
doc.PrintOut(1, options);
}
}
using (ITimer timer = _logger.Time("End Print")) {
doc.EndPrint();
}
}
finally {
using (ITimer timer = _logger.Time("Close document")) {
doc.Close();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -end-print
Мобильная версия