Questo codice che potrebbe sembrare inutile riproduce il problema. Un'altra applicazione utilizza http://printqueuewatch.codeplex.com/ per ricevere una notifica quando un lavoro di stampa viene inviato alla stampante. Funziona ma a volte quando si invia un lavoro di stampa si blocca qui GetPrintJobInfoCollection. Ho incollato l'eccezione interna. Per riprodurre invio con Notepad ++ o la mia applicazione un piccolo file di testo circa 20 volte fino a quando non si verifica un arresto anomalo. Se dopo l'arresto si chiama GetPrintJobInfoCollection, funziona correttamente o riprovo.GetPrintJobInfoCollection() Eccezione a volte
Qualche suggerimento su come risolvere questo problema?
while (true)
{
Thread.Sleep(10);
LocalPrintServer server = new LocalPrintServer();
var q = server.GetPrintQueue("vp1");
q.Refresh();
// Debug.WriteLine(q.IsBusy);
PrintJobInfoCollection infos = null;
infos = q.GetPrintJobInfoCollection();
}
Errore in
System.NullReferenceException was unhandled Message=Object reference
not set to an instance of an object. Source=System.Printing
StackTrace:
at MS.Internal.PrintWin32Thunk.AttributeNameToInfoLevelMapping.InfoLevelCoverageList.Release()
at MS.Internal.PrintWin32Thunk.EnumDataThunkObject.GetPrintSystemValuesPerPrintJobs(PrintQueue
printQueue, Queue`1 printObjectsCollection, String[] propertyFilter,
UInt32 firstJobIndex, UInt32 numberOfJobs)
at System.Printing.PrintJobInfoCollection..ctor(PrintQueue printQueue, String[] propertyFilter)
at System.Printing.PrintQueue.GetPrintJobInfoCollection()
at WpfApplication7.MainWindow.button2_Click(Object sender, RoutedEventArgs e) in