iPhoneのファイル読み込みで、IStream::Release に時間がかかる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
てまえ

iPhoneのファイル読み込みで、IStream::Release に時間がかかる

#1

投稿記事 by てまえ » 13年前

いつもお世話になります。

環境:Windows7 64bit VC2010

早速ですが、iPhone(iOS)からファイル(画像)を読み取るプログラムを作成してます。
ファイルの読み込みには、IShellFolderなどのShell関連APIを使用しています。

そこで、タイトルの問題が発生するのですが、
IShellFolder::BindToObjectで対象ファイルのIStreamを取得し、
IStream::StatやIStream::Readといった操作を行うと、
IStream::Releaseに、およそ300~400ミリ秒の時間がかかってしまいます。

Cドライブ等の通常のファイルは、問題ありません。
iPhoneとiPodで現象が発生することを確認しています。

IStream取得後、なにもせずにReleaseした場合は、即時完了します。

また、IStream::Readでファイルの最後まで読み取った後であれば、
Releaseに時間がかかりません。即完了します。

Windows Vista、7で、本現象を確認しています。
XPでは現象がおきませんでした。


今回作成中のプログラムは、EXIF等のファイル情報のみを素早く取得したい為、
このReleaseの待ち時間がボトルネックとなっております。

原因と回避策をご存じの方はおりませんでしょうか。
解決の切っ掛けとなりそうな事であれば、なんでもかまいませんので、ご助言をお願いします。

“C言語何でも質問掲示板” へ戻る