C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

COMオブジェクトについて


(過去ログ 7 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■7861 / inTopicNo.1)  COMオブジェクトについて
  
□投稿者/ 太 二等兵(1回)-(2006/10/28(Sat) 21:35:38)

分類:[C#] 


分類:[C#] 

はじめましてこんばんは

貴サイトの「COM オブジェクトを解放する」
http://jeanne.wankuma.com/tips/programing/releasecom.html
を拝見しました。
大変勉強になります。有難うございます。

これに関しての質問させていただきます。

参照カウントのデクリメントですが
int i=1;
while(comObj!=null && i>0){
System.Runtime.InteropServices.Marshal.ReleaseComObject(comObj);
}
というやり方ではだめなのでしょうか。
可読性、try構文のコストの高さ、プロジェクトの保守のしやすさ等を考えると
インスタンスを破棄する際に一気にデクリメントしたほうが良いように思えます。

この方法で問題点などありましたらご指摘いただければ幸いです。

0
引用返信 編集キー/
■7864 / inTopicNo.2)  Re[1]: COMオブジェクトについて
□投稿者/ 中博俊 神(825回)-(2006/10/28(Sat) 22:57:09)

分類:[C#] 

とにかく銀の弾はないんです。
.NETでのCOMのカウントは1に固定され基本的には増えません。
また、COMオブジェクトは暗黙的に参照されるので、この中のcomObjにあたるものをすべて保存しておくことができません。

0
引用返信 編集キー/
■7866 / inTopicNo.3)  Re[2]: COMオブジェクトについて
□投稿者/ 太 二等兵(2回)-(2006/10/28(Sat) 23:43:50)

分類:[C#] 

レス有難うございます。

No7864に返信(中博俊さんの記事)
> とにかく銀の弾はないんです。
> .NETでのCOMのカウントは1に固定され基本的には増えません。

2とかにもなりますよ?試してみてください。
(当方の環境は.NET2.0です。)
ちなみにこちらにも記述はあります。

http://72.14.235.104/search?q=cache:mBP1_QLDl1wJ:www.microsoft.com/japan/msdn/enterprise/pag/scalenetchapt07.aspx+FinalReleaseComObject&hl=ja&gl=jp&ct=clnk&cd=5

いや、ネストしなくてはならない理由は何でだろうなぁと思ったんですね。


0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -