【发布时间】:2013-04-16 03:46:39
【问题描述】:
我正在使用PrintTickets 打印大量WPF objects,并且打印正常。我们确实有一种情况,据报道,程序正在使用大量的dllhost.exe 内存并爬升直到机器最终崩溃。我已将其缩小到创建PrintTicket 和printqueue.getprintcapabilitiesasxml()。每次调用它们时,它都会使dllhost.exe 的内存使用量每次增加 3+ MB。谁能告诉我如果可能的话如何避免这种情况,或者在我知道它被使用后是否有办法清除它?
更新:我用简单的代码创建了一个项目。
for (int i = 0; i < 100; i++)
{
using (System.Printing.PrintQueue pQueuePrnt =
new LocalPrintServer().GetPrintQueue("HP LaserJet 9050 PCL 5"))
{
using (MemoryStream printerCapXmlStream = pQueuePrnt.GetPrintCapabilitiesAsXml())
{
Console.WriteLine(printerCapXmlStream.Length);
}
}
}
这将导致dllhost.exe 中有近 60 MB 永远不会消失。
【问题讨论】:
标签: .net wpf printing memory-leaks