Когда у меня есть два экземпляра PrintQueue
в C# одного и того же принтера. Один я сделал до того, как позвонил .refre sh (), другой после. Я поместил эти PrintQueue
в ArrayList. И вращайте их. Тем не менее, я получаю разные результаты, например:
if(arrPrintersOld != null)
{
arrPrintersOld.Clear();
arrPrintersOld = null;
}
arrPrintersOld = arrPrinters;
arrPrinters = new ArrayList();
PrintQueueCollection printQueues = null;
// PrintServer Class = Manages the print queues on a print server,
// which is usually a computer, but can be a dedicated hardware print server appliance.
PrintServer printServer = new PrintServer();
printQueues = printServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections });
foreach (PrintQueue pq in printQueues)
{
pq.Refresh();
arrPrinters.Add(pq);
}
if(!blnFirstTimePrinterList)
{
comparePrinterLists();
PrintQueue tempOld = (PrintQueue)arrPrintersOld[0];
PrintQueue tempNew = (PrintQueue)arrPrinters[0];
Console.WriteLine("OldPrinter 1 is paused:" + tempOld.IsPaused);
Console.WriteLine("NewPrinter 1 is paused:" + tempNew.IsPaused);
}
Как только я отключаю принтер, я получаю true в tempOld.IsPaused и false в tempNew.IsPaused;
Но когда Я снова делаю паузу в принтере, получаю true и tempOld.IsPaused и true и TempNew.IsPaused?
Так работает ли функция refre sh () в указанных случаях, если я что-то пропустил