do not discover while printing

This commit is contained in:
EugeneTes
2026-01-27 11:55:57 +01:00
parent 43c118f527
commit bbe3a36c90
5 changed files with 42 additions and 5 deletions

View File

@@ -15,11 +15,12 @@ public class PrinterQueue
private Task _processingTask;
private readonly IPrintService _printService;
private readonly ILogger _logger;
private readonly PrintServer _printServer;
public bool IsProcessing { get; private set; }
public int QueueLength => _queue.Count + _priorityQueue.Count;
public PrinterQueue(string printerIp, IPrintService printService, ILogger logger)
public PrinterQueue(string printerIp, IPrintService printService, ILogger logger, PrintServer printServer)
{
PrinterIp = printerIp;
_queue = new ConcurrentQueue<PrintJob>();
@@ -28,6 +29,7 @@ public class PrinterQueue
_cancellationTokenSource = new CancellationTokenSource();
_printService = printService;
_logger = logger;
_printServer = printServer;
}
public void Enqueue(PrintJob job)
@@ -70,6 +72,7 @@ public class PrinterQueue
{
_logger.LogInformation("Processing job on printer {PrinterId}", PrinterIp);
_printServer.EnterPrintLock();
try
{
// Call the actual print function
@@ -100,6 +103,10 @@ public class PrinterQueue
_logger.LogError(ex, "Error processing job");
// Handle exception (retry, log, etc.)
}
finally
{
_printServer.ExitPrintLock();
}
}
}
catch (OperationCanceledException)