2

印刷機能とその印刷のプレビューを実行する機能を提供するアプリケーションがあります。印刷プレビューは、 を使用して処理されPrintPreviewDialogます。アプリケーションは C# WinForms .Net 4.0 アプリケーションです。

基本的に、この機能は複数ページのレポートを印刷 (プレビュー) しており、この特定の例では、多数の画像ファイル (1 ページあたり 2 つの画像で約 950) をプレビューしています。

この場合、アプリケーションは 462 ページでエラーをスローしており (合計からそれほど離れていません)、その時点で次のタスク マネージャーの値を使用できます。

  • メモリー (PWS): ~1.6GB
  • ハンドル: ~480
  • ユーザー オブジェクト: ~300
  • GDI オブジェクト: ~1400

メモリ不足の例外が予想されるため、メモリは(高いですが)問題ではないと確信しています。GDI オブジェクトは少し増えていますが、これが高すぎるとは思いません (デフォルトの制限は 10000 だと思いますか?)

表示されている実際の例外メッセージは、これまでにないほど役に立ちます。

GDI+ で一般的なエラーが発生しました

その他の注意事項:

  • これは顧客のサイトで実行されるアプリケーションであるため、デバッガーを実行する機能はありません
  • 画像は最初にオブジェクトのコレクションとしてメモリに読み込まれImageます (GDI オブジェクト数が多いのはこのためです)。これはこの段階では変更できません。
  • これが実際の印刷を行うときにも問題になるかどうかはまだ確認していません。明らかに、誰もその紙をすべて無駄にしたくないのですが、Print to PDF テストの結果を待っています。

最後に、私の質問は次のとおりです。この動作を引き起こす可能性があることに注意する必要がある制限はありますか? レジストリで設定される可能性のある Windows の制限など。印刷メモリに関連する何か?または印刷用の別のGDI制限?

原因を診断するために実行できるその他のテストはありますか?

4

1 に答える 1