更新它似乎应用程序不知道打印任务何时完成,并保持连接无限期打开。有没有办法杀死这个连接?报告查看器在关闭后静默地挂起X
当我使用报表查看器调试wpf并打印文档时,我似乎无法完全关闭wpf。
我按下窗口上的X,窗口关闭,但vs仍在运行。暂停不会显示它保持悬挂的位置,但wpf中没有任何线程。
我们覆盖了打印以跳过对话框,但尝试在运行后将所有内容设置为null都无济于事。任何想法,为什么它一直挂? (关闭应用程序之前,它打印工作正常。)
这三个线程仍然工作,有没有办法找出为什么他们保持开放?
没有旗标1424 7工作线程vshost.RunParkingWindow [托管到纯过渡]正常
没有旗标4320个8工作线程.NET SystemEvents [托管到纯过渡]正常
没有旗标> 4332 9主线程主体螺纹[管理到本地转换]正常
protected override void OnPrintCommand()
{
PrintDialog printDialog = new PrintDialog();
printDialog.PrintQueue = LocalPrintServer.GetDefaultPrintQueue();
printDialog.PrintTicket = printDialog.PrintQueue.DefaultPrintTicket;
FixedDocument fixedDocument = this.Document as FixedDocument;
FixedDocumentSequence fixedDocumentSequence = this.Document as FixedDocumentSequence;
if (fixedDocument != null) fixedDocument.PrintTicket = printDialog.PrintTicket;
if (fixedDocumentSequence!= null) fixedDocumentSequence.PrintTicket = printDialog.PrintTicket;
XpsDocumentWriter writer = PrintQueue.CreateXpsDocumentWriter(printDialog.PrintQueue);
if (fixedDocument != null) writer.WriteAsync(fixedDocument, printDialog.PrintTicket);
if (fixedDocumentSequence != null) writer.WriteAsync(fixedDocumentSequence, printDialog.PrintTicket);
printDialog = null;
fixedDocument = null;
fixedDocumentSequence = null;
writer = null;
}
使用Debug + Break All,Debug + Windows + Threads并找出你在那里看到的线程在做什么。 – 2011-03-11 16:36:53
如果您有任何自定义线程,我会使用Hans技术在那里查看,您可能会有一些未设置为后台线程的滞留线程保持流程执行活动。 – 2011-03-11 16:39:01
我已检查线程。还有三个仍在运行,我更新了这些问题,但我并没有自己创建任何线程,所以我不知道我怎么能找出我能做些什么。 – Andy 2011-03-11 16:54:03