Программа мониторинга печати - PullRequest
0 голосов
/ 28 ноября 2010

Добрый день. У меня есть исходная программа , которая контролирует состояние принтера (начало печати, остановка и т. Д.). Вот код, который отображает информацию о печати:

        MethodInvoker invoker = () =>
        {
            lbSpoolChanges.Items.Add(e.JobID + " - " + e.JobName + " - " + e.JobStatus);
        };
        if (lbSpoolChanges.InvokeRequired)
        {
            Invoke(invoker);
        }
        else
        {
            invoker();
        }`

Вы также можете вызвать свойство e.JobInfo.NumberOfPagesPrinted, и строка будет

lbSpoolChanges.Items.Add(e.JobID + " - " + e.JobName + " - " + e.JobStatus + " - " + e.JobInfo.NumberOfPagesPrinted);

но в отладочной ошибке выскакивает "Вызывающий поток не может получить доступ к этому объекту, так как владельцем этого объекта является другой поток .." Скажите, где вы хотите вызвать это свойство. Источник включен. А может кто-нибудь подсказать, как сделать так, чтобы автоматически контролировались все принтеры (например, 4), а не установленные в программе. Заранее спасибо.

1 Ответ

0 голосов
/ 28 ноября 2010

Работает ли это, если вы напишите invoker как Action и передадите параметры делегата с помощью BeginInvoke?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...