このコードを使用してWPF Image Controlを設定します。画像ファイルをパラレルから更新するタスクの問題
string pathToImage = System.IO.Path.Combine(Settings.ContentFolderPath, file);
Image image = new Image();
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(pathToImage, UriKind.Absolute);
src.EndInit();
double ratio = src.Width/src.Height;
image.Source = src;
image.Stretch = Stretch.Uniform;
image.Height = marquee1.Height;
image.Width = marquee1.Height * ratio;
lstItems.Items.Add(image);
はまた、私は、このイメージファイルを更新するには、いくつかの並列Task
を持っています。
しかし、私がそれを削除しようとすると、エラーが発生します。ファイルは他のプロセスによって使用中です。このファイルを削除することはできません。
この問題を解決するにはどうすればよいですか?
ありがとうございました!
UPDATES
だから、あなたのすべてに感謝!
最終溶液は、作業コードが
一般にImage image = new Image();
BitmapImage src = new BitmapImage();
src.BeginInit();
src.CacheOption = BitmapCacheOption.OnLoad;
src.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
src.UriSource = new Uri(pathToImage, UriKind.Absolute);
src.EndInit();
double ratio = src.Width/src.Height;
image.Source = src;
image.Stretch = Stretch.Uniform;
image.Height = marquee1.Height;
image.Width = marquee1.Height * ratio;
lstItems.Items.Add(image);
result = image.Width;
だけのノートとして、あなたは 'FILE_SHARE_DELETE' /' FileShare.Delete'でファイルを開き、のことができるように可能性'File.Delete()'を使用しますが、WPFは画像を開くときにそのモードを使用しません。 – user7116