我有一個應用程序提供打印功能和預覽該打印的能力。打印預覽使用PrintPreviewDialog
進行處理。該應用程序是一個C#WinForms .Net 4.0應用程序。進行打印預覽時是否有限制?
實質上,該功能是打印(預覽)多頁報告,並且在此特定實例中,它預覽了大量圖像文件(每頁大約2個圖像950個)。
在這種情況下,應用程序在462頁拋出一個錯誤(所以不算太離譜總),而當時以下任務管理器值可用:
- 存儲器(PWS): 〜1.6GB
- 手:〜480個
- 用戶對象:〜300
- GDI對象:〜1400
我相信,內存(ALTH ough高)不是問題,因爲我會期望一個內存不足的例外。 GDI對象漸晚了一點,但我不認爲這是過高
所顯示的實際異常消息是不斷有幫助的(我相信默認限制是10000?):
在GDI發生一般性錯誤+
一些其他的事情要警惕:
- 這是在客戶的網站上運行的應用程序,所以沒有運行廣告的能力ebugger
- 圖像首先加載到內存中
Image
對象的集合(這也解釋了高GDI對象計數),這不能在這個階段 - 我還沒有證實被改變,如果這樣做的時候,這也是一個問題一個真正的打印,顯然沒有人願意浪費所有的文件,但我正在等待打印的結果,以PDF測試
最後,我的問題是:是否有任何限制我應該知道可能的導致這種行爲?例如可能在註冊表中設置的Windows限制。與打印內存有關的東西?或不同的GDI限制打印?
是否有任何進一步的測試可以幫助診斷原因?
其實,我不願意認爲這是原因,因爲在將文件加載到MemoryStream中之後。然後我將它繪製成一個新的Image,然後關閉MemoryStream - 這應該消除與文件的任何連接。這可能是一個初始讀取被鎖定,很難說,因爲我現在說我不能更改代碼來測試它。 – musefan