- - PR -
印刷ダイアログの表示が遅い
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-14 22:32
ノータッチ デプロイメントということなので、権限周りも調べておくべきかな?
認証に手間取っているかもしれない。 「ドメイン環境で、その端末だけワークグループだった」 「ログインしているユーザがローカルユーザだった」 などが、手間取る理由として考えられます。 あとは、スニッファーなどでネットワーク トラフィックを監視してみたり。 | ||||||||
|
投稿日時: 2006-07-31 15:36
印刷レスポンスの件で、新しい情報を得ることが出来ました。
前回の印刷設定(XMLに保存している)をもとに、 PrintDocumentのプロパティに設定を反映する処理において、 用紙設定(PaperSizeプロパティ)の復元で約20〜30倍ほど 差が出ておりました。 どのような処理かというと、以下のメソッドの通りなんです。 public PaperSize GetPaperSize(PrintDocument document) { int w_height = (用紙設定値取得); // 用紙の高さ int w_width = (用紙設定値取得); // 用紙の幅 // _paperName は 用紙名 PaperSize result = new PaperSize(_paperName, w_width, w_height); if (document != null) { for (int i=0; i<document.DefaultPageSettings.PrinterSettings.PaperSizes.Count; i++) { PaperSize p_size = document.DefaultPageSettings.PrinterSettings.PaperSizes[i]; if (p_size.PaperName.Equals(_paperName)) { result = p_size; break; } } } return result; } このメソッドでは、単純に設定ファイルに保存されている用紙名と、 PrinterSettingsプロパティのPaperSizesプロパティに定義されている 用紙サイズ名をマッチングしているだけなんです。 果たして、このコードの何が悪いのでしょう? | ||||||||
|
投稿日時: 2006-07-31 16:32
メソッドが特定できたくらいであれば、この際、さらなる検証をしても良いのではないでしょうか?
何にせよ、このメソッド中の 'どこが' ボトルネックなのかを絞り込む必要があります。 最初に確認しておくべきところは、
一応ですが、ここ。(for より foreach の方が良いように思いますが)
それと、こちらでの検証でしょうか。 ところで、なぜに、Equals メソッドなのでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-08-01 16:59
じゃんぬねっとさん、どうもありがとうございます。
foreach を使わない理由なんですけど、 Disposeできるクラスだと、1回のループが終わると、 内部的にDisposeが発生してしまう、というのがありまして、 プログラム全体として、できる限りforeachを使わない方向で 作っていました。 あと、Equqls()メソッドを使っている理由なんですが、 これは、昔どこかで文字列の比較について、Equalsを使え、 ということを教わったことがありまして、その影響もあって、 Equalsを使っています。 | ||||||||
|
投稿日時: 2006-08-01 17:35
はん?なにそれ?
嫁。 http://blogs.wankuma.com/shuujin/archive/2006/02/03/21014.aspx |