Dieser Code, der unbrauchbar erscheinen könnte, reproduziert das Problem. Eine andere Anwendung verwendet http://printqueuewatch.codeplex.com/, um benachrichtigt zu werden, wenn ein Druckauftrag an den Drucker gesendet wird. Es funktioniert, aber manchmal, wenn Sie einen Druckauftrag senden, stürzt es hier ab GetPrintJobInfoCollection. Ich habe die innere Ausnahme eingefügt. Zum Reproduzieren sende ich mit Notepad ++ oder meiner Anwendung eine kleine Textdatei etwa 20 mal, bis ich einen Absturz bekomme. Wenn ich nach dem Absturz GetPrintJobInfoCollection aufrufen funktioniert es erfolgreich oder ich versuche es erneut.GetPrintJobInfoCollection() Ausnahme manchmal
Irgendwelche Vorschläge, wie Sie das beheben können?
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();
}
Fehler bei
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