中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

ImageってhDCを抱えているんじゃ無かったかな?

ひどりさんがキャッシュ機構を提供(http://blogs.users.gr.jp/hidori/archive/2004/04/19/2093.aspx)してくれましたのでそいつの評価をしてました。

DictinaryとListをつかって実装されているのですが、Imageを食べさせると問題があります。 ImageはIDisposableを実装していて、調べたわけではないですが内部に旧来のDCを抱えているのではないかと持っています。

そうなると作り捨てはかなり実行時例外の危険性を誘発するので、Disposeしてやらないと行けないと思います。
そう言う意味で実はIDisposableを意識したコレクションって無いんですよね(知っている限り)。このへんがIDisposableが異端児扱いされる理由かも。。。(^^;;;

なのでIDisposable版を作ろうと継承してこねこねしてたのですが、ちょっと無理そう(元のクラスをいじらないと)なので、かってながらVerUp依頼を。。。

  • IDisposableを意識したクラスを作って欲しい
  • IDisposableを継承して欲しい
  • RemoveAllを追加して欲しい
  • ListとDictinaryを暗黙privateからprotectedに変更して欲しい
  • AddとRemoveをthisでやるのかAdd/Removeでやるか統一して欲しい(混ざってますよね?)

hDCを抱えているのであればメモリがいっぱいになったら消えていく機構にImageを突っ込むのは危険というこでこのへんは難しい現実ということでASP.NetでCacheを利用する場合にも注意が必要。
hDC抱えているかどうか誰か知ってますか?

投稿日時 : 2004年4月20日 8:34

コメントを追加

# re: ImageってhDCを抱えているんじゃ無かったかな? 2004/04/20 9:33 渋木宏明(ひどり)

>ImageはIDisposableを実装していて、調べたわけではないですが内部に旧来のDCを抱えているのではないかと持っています。

持ってないと思うなぁ。
HDC のラッパは Graphics でそ。

とは言え、HBITMAP のようなアンマネージリソースを抱えているはずなので、Dispose() に関しては考えないといけないですね。

>そう言う意味で実はIDisposableを意識したコレクションって無いんですよね(知っている限り)。

IDisposable を継承した、IComponent を意識したコレクションなら、System.ComponentModel.ComponentCollection ってのがあります。

>なのでIDisposable版を作ろうと継承してこねこねしてたのですが、ちょっと無理そう(元のクラスをいじらないと)なので、かってながらVerUp依頼を。。。

>IDisposableを意識したクラスを作って欲しい

クラスの名前考えてくれたら入れてもいいかな (^^;

>IDisposableを継承して欲しい

んー、CacheBase を IDisposable 派生にしてもいいけど、「キャッシュ項目が IDisposable かどうか」は実装の問題じゃないかな?

あと、キャッシュから取り出した項目を Dispose() しちゃうと、キャッシュが抱えているオブジェクトが無効化されてしまうので、これまた困ったことになりますよね?(キャッシュ項目は、キャッシュの所有物と観るのが正しいと僕は考えています)

なので、例えば、あのサンプルで言えば、MyCachedDataSource を

・IDisposable を継承とする。
・IDisposable.Dispose で、this.Clear() を呼び出す。
・キャッシュから取り出した項目を、Clone() してクライアントに引き渡す。

てな感じに手直しすれば万事解決では?

>RemoveAllを追加して欲しい

Clear() でどぞ。
CacheBase はディクショナリパターンの実装例なので ;-)

>ListとDictinaryを暗黙privateからprotectedに変更して欲しい

これ、必要かな?
実装クラスで、変に Dictionary と ArrayList の同期を崩されたくないんですけど。。。

何か具体的な理由があれば、検討してみます。

>AddとRemoveをthisでやるのかAdd/Removeでやるか統一して欲しい(混ざってますよね?)

これは IDictionary を作った人に言ってください ;-p

# re: ImageってhDCを抱えているんじゃ無かったかな? 2004/04/20 11:03 菊池

Image をキャッシュするって、JavaのAppletで先にイメージをダウンロードしてた見たいな感じかなぁ。

自分ならImageListコンポーネントとかで支えるかな。

# re: ImageってhDCを抱えているんじゃ無かったかな? 2004/04/20 11:06 渋木宏明(ひどり)

色数違ったりすると駄目くない?>ImageList

# re: ImageってhDCを抱えているんじゃ無かったかな? 2004/04/20 12:42 中 博俊

>・IDisposable を継承とする。
>・IDisposable.Dispose で、this.Clear() を呼び出す。
>・キャッシュから取り出した項目を、Clone() してクライアントに引き渡す。
>てな感じに手直しすれば万事解決では?

そうですね。

+Remove系処理の手前でDisposeする。
+取り出したアイテムはDisposeするよう明記する
っていうところですか。


っていうか、もう登録されてますが・・・仕事が速い!!

# re: ImageってhDCを抱えているんじゃ無かったかな? 2004/04/20 12:55 渋木宏明(ひどり)

100行くらいだもん (^^;

# Есть нормальные способы зароботка с помощью интернее? 2008/06/27 4:09 Dolphin_ukr

Всем здравствуйте,
подскажите, кто как зарабатывает на интернет?


# Софт, эротика, фильмы, игры - БЕСПЛАТНО! | Soft, ero, music - Free!!! 2008/10/23 23:18 kasmattaa

Посетите наш развлекательный сайт http://hornywarez.net На нем есть новые фильмы, музыка, скрипты, игры, картинки, обои, эротика фото, эротика видео, книги!
И все это для Вас БЕСПЛАТНО!

Welcome to our site http://hornywarez.net
U can see many FREE movies, soft, music, games, pictures, wallpapers, erotics, erotic video, books.

# http://www.RENEWHOUSE4U.COM 2010/01/25 3:06 georgesover

We restorate houses In Maryland,US.
Custom / External remodelings,
intelligent prices,license,
references,photos,free estimates,
also take houses to rehab:
http://www.renewhouse4u.com.
Mobile:410-978-7981.
Thanks.

# Топик 2 2010/11/14 1:26 gen-p.ru

Каждому Доброе утро! Интересуетесь судьбой планеты или биологией? тогда вам сюда - http://gen-p.ru/19121020

# fokbJJhdlooEEDMBwuX 2011/09/29 11:26 http://oemfinder.com

PpZjGi The text is promising, will place the site to my favorites..!

# TNRVcfLQuafHZ 2011/10/06 0:21 http://www.cpc-software.com/products/Download-Micr

I do`t regret that spent a few of minutes for reading. Write more often, surely'll come to read something new!...

# hDKshPOHgGDRAu 2011/10/21 22:07 http://www.epotenzmittel.com/

Yeah !... life is like riding a bicycle. You will not fall unless you stop pedaling!!...

# EcqiHePjCyYYHKouzv 2011/11/02 5:31 http://www.pharmaciecambier.com/

Yeah, now it's clear !... And firstly I did not understand very much where there was the link with the title itself !!...

# zvalvLbjig 2011/11/08 16:41 http://papillomasfree.com

However, the author created a cool thing..!

# ljSSHdoEjlFtT 2012/01/04 6:13 http://www.kosherbeefjerky.com/

O93ZsX Hello! Read the pages not for the first day. Yes, the connection speed is not good. How can I subscribe? I would like to read you in the future!...

タイトル
名前
URL
コメント