- - PR -
VB.,NETアプリが System.InvalidOperationException がでて落ちる。画面描画でクラッシュ?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-07 17:12
こんにちは。お世話になってます。
現在、VB.NET 2005 + SQL Server 2005 でWinFormアプリケーションを作っています。 MDIフォーム形式の中に、子フォームが開き、その子フォームには多くのコントロール が貼り付けてあります。 VB6ころに作っていたときの画面と同程度の物でVB6時はそんな違和感無く使用できて いたものですが、VB.NETになって画面描画がぱらつく状態となってしまいました。 若干ぱらつくのは我慢していたのですが、突然、ある端末においては以下のような 例外が発生してアプリが落ちてしまう現象が出ました。 アプリの大元でハンドルできない例外をキャッチしてログに出力しています。
いろいろと調べたのですが、これといった情報が見当たりません。 何か、ご存知の方はおられませんでしょうか? | ||||
|
投稿日時: 2006-02-07 17:24
それは良いのですが、実際にはどのタイミングで起きるのでしょうか? このスタック トレースですと、見当が付かなかったもので。 もし、MDI 子フォームの Load 時であれば、周辺のコードもください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-07 17:48
早速の返答ありがとうございます。
MDIフォームに子フォームをいくらか開いて、子フォームや親フォームのウィンドウ サイズを変えたり、子フォームを別のフォームにアクティブにしたり、タブコントロ ールを切り替えたりしているとパラパラと画面描画されます。 それを高速に繰り返すと、突然アプリが落ちてログに例外が記録されています。 ちなみにタスクマネージャを見ながらしてみたのですが、メモリ不足ではなさそう です。1GB の実メモリに対し、空き320MB近くある状態でもおちるようです。 [ メッセージ編集済み 編集者: maru 編集日時 2006-02-07 18:09 ] | ||||
|
投稿日時: 2006-02-07 17:56
結局のところ、まずい処理が介入しているかどうかが不明なため、ミニマム コードが必要になります。
そして、その最低限のコードをこちらに記載して欲しいです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-08 00:02
基本的に起こってはいけないことが起こっているのではないでしょうか。 つまり何か原因があるはずで、だからじゃんぬさんもコードがわかればとおっしゃっておられます。 デバッグで動かしてどのステップで落ちているのか。 多数のコントロールとはどの程度なのか。特殊なコントロールや使い方をしていないか。 再現性はあるのか。(特定フォーム、特定PC、特定の操作) など、明らかに情報が不足しています。 | ||||
|
投稿日時: 2006-02-08 02:15
南部です。
ここで同じのがありますね。 解決してませんが、一応。 DoubleBufferをfalseにするしかないのかなぁ。 #かなりチラつくのかな? | ||||
|
投稿日時: 2006-02-08 15:27
こんにちは。お世話になってます。返答ありがとうございます。
落ちるプログラム自身は画面上にコントロールを大量に貼り付けているだけのフォー ムで、そのコントロールのイベントの中にはほとんど処理は書いていません。 タイミングは不定期で、フォームリサイズなどを高速に連続してやり続けると発生し ますので、ステップ実行で再現できるものではありません。 標準コントロールを継承した自作コントロールを多数貼り付けており、なかに画面描画 系(OnPaint)イベントをオーバーライドして自分でイメージをDrawしたりしているもの もあるため、それが怪しいのかなと思いました。 まだ、これがミニマムコードというのは示せないので、その怪しいと思われている部分 をコメントするなりして、挙動の違いを確認しながら、怪しい部分を絞っていきたい と思います。 |
1