|
■No80344 (アブサン さん) に返信 > EXE直接だと早いので、プログラム的な要因とは思いたくないところ > ですが、、、
EXE から起動した後に、[デバッグ]-[プロセスにアタッチ] を利用して デバッグした場合、同様の速度低下がみられますか?
> DataGridViewへはDataSourceプロパティへのバインドを使用して > おらず、セルのValueプロパティへ値を設定しています。
あえてセル単位での制御を行っていると言うことは、 バインドでは扱いづらい内容を取り扱っているのでしょうか。
>>> EXEを直接実行すると瞬時に返る処理がデバッグ実行時には3分程度かかります。 > DataGridViewへの設定・表示が遅いと考えています。
設定完了までが遅いのか、 設定後の表示が遅いのかを調べてみてください。
また、表示させているデータ量は如何ほどなのでしょうか?
こちらでもダミーデータを用意して試してみたいので、 列数・行数その他特記事項など、新規プロジェクトにおける 再現調査に必要な情報を教えて頂けると幸いです。
ちなみに下記の場合、当方では開発環境の速度低下はみられず、 いずれも 1.15〜1.29秒程度で表示されました。
private const int ColumnCount = 255; private const int RowCount = 2047; private DataGridView dgv; private Stopwatch sw; protected override void OnDoubleClick(EventArgs e) { base.OnDoubleClick(e); if (dgv == null) { sw = Stopwatch.StartNew(); dgv = new DataGridView() { Dock = DockStyle.Fill }; Controls.Add(dgv); dgv.AllowUserToAddRows = false; dgv.ColumnCount = ColumnCount; dgv.RowCount = RowCount; for (int r = 0; r < RowCount; r++) { for (int c = 0; c < ColumnCount; c++) { dgv[c, r].Value = $"{r+1}行{c+1}列"; } } sw.Stop(); Text = sw.Elapsed.ToString(); } }
|