Обновляется ли каждый экземпляр PrintQueue (одного и того же принтера) при обновлении sh одного экземпляра? - PullRequest
0 голосов
/ 06 января 2020

Когда у меня есть два экземпляра 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 () в указанных случаях, если я что-то пропустил

...