- - PR -
[解決]ASP.NETからのExcel作成でエラー
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-26 21:43
あぅ・・・うちは、「エクセルを終了させてから、アプリケーション終了」だから、残っているのが解放されているんだった。。。 致命的なことをやっている(私じゃない)のを、いつ、どうやって修正しようか、考え中。そして、Windows Service でやろうとしているんだけど、同じように致命的なんだよぉ。解放してくれぇ! | ||||||||
|
投稿日時: 2006-02-26 21:58
根本的な解決として、COM は使わないようにしましょう... ですが、 どうしてもというならば、Try 〜 Finally の保証プラス、大外に Catch 句も追加しておきましょう。 大外の Catch 句で、COM の参照ではなく変数の参照を解き、 ここで禁断の GC.Collect メソッドを実行します。 # あくまで例外発生時の保険ということで、昔は紹介していましたが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-15 14:24
たまたま見かけたのでちょっと質問なんですが、
これってどこかに記述されてるんでしょうか?
とも書かれているので、特定のクラスのDispose実装の話ではなくて 一般の話として、ですよね? これって(今回のReleaseComObjectに関しては、そもそも特定の状況で例外を スローすると明記されているのでそれは置いとくとして)、 通常のメソッドでは、ドキュメントに記述があろうとなかろうと例外を スローしないことは保証されないが、Disposeメソッドではそれが保証されている というように読めるんですが、そういう意味なんでしょうか? この辺に関する記述があるなら教えてほしいです。 | ||||||||
|
投稿日時: 2006-03-15 14:42
「複数回による呼び出し」限定だったみたいですね。 そして、ObjectDisposedException はスローできるってことですね。 CLR 言語をやり始めたばかりの頃に、このあたりは一通り読んだのですが、間違った理解をしていたようです。 フォローありがとうございます。(*_ _) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
«前のページへ
1|2|3