質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

イベントハンドラ

マウスのクリックなどの特定の事象(イベント)が発生した時に実行される処理のことをイベントハンドラと呼びます。

.NET Framework 4.0

Microsoft Windows用のソフトウェア開発環境/実行環境である .NET Frameworkの4番目のメジャーバージョンです。

Q&A

解決済

1回答

12107閲覧

フォームのShowメソッド後の動作の詳細

tuyudaku

総合スコア75

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

イベントハンドラ

マウスのクリックなどの特定の事象(イベント)が発生した時に実行される処理のことをイベントハンドラと呼びます。

.NET Framework 4.0

Microsoft Windows用のソフトウェア開発環境/実行環境である .NET Frameworkの4番目のメジャーバージョンです。

0グッド

0クリップ

投稿2016/09/29 01:15

編集2016/09/29 01:18

###前提・実現したいこと
C#のWindowsアプリケーションの処理速度向上

他の方が作成したアプリケーションのため、すべての処理を理解しているわけではないのですが、アプリケーションの起動が遅いためその改善をしたいと思っています。

MDIを使って複数のフォームをタブで画面を切り替えて使うアプリケーションなのですが、コントロールの数が多い画面だとそのフォームの表示がとても遅くなります。一番遅いと12秒ほどかかります。

最初は、まあ当たり前のことかと思っていたのですが。
コンストラクタ、Activatedイベント、など表示までの各ソースに時間計測を仕込んで原因の部分を探っていたら。

showメソッドを呼び出してからActivatedイベントが発生するまでの間で12秒ほどかかっていることがわかりました(Loadイベントは割り当ててないので起きないはずです)。

そこでshowメソッド呼出しからActivatedイベントの間に何が行われているのかを教えてもらえますでしょうか?

###補足情報(言語/FW/ツール等のバージョンなど)
C#
Visual C# 2010 ExPress
.NET 4.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Windows フォームのイベントの順序
ただ、これがわかってもパフォーマンスは多分改善できないと思うので、適当に当てずっぽで助言してみます。

コントロールのレイアウトを一時中断して、パフォーマンスを向上させる
大量の子を作っているならlayoutイベントの停止で改善できるかも・・・

投稿2016/09/29 01:51

ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2016/09/29 01:55

私もそのページを見ましたw 上のページ通りならControl.VisibleChanged で時間がかかってるのかと思うのですが... showメソッドでブレークしてステップインをするとそのままプログラムが再開してしまうので、どう動作しているのか追えません... レイアウトは一時中断してインスタンス等を作成しております。 コントロールのインスタンスの作成や情報の追加などの時間は1秒未満だったため あまり関係ないのかなあと思っています... 回答ありがとうございました。
tuyudaku

2016/09/29 02:10

そうですね、とりあえずもう一度細かく計測して原因を探ってみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問