我编写了一个程序,它使用一些图片资源并从中创建一个文件。作为客户预览,图像在使用之前显示。因此,我需要先处理它们,然后才能与它们合作。但是我想在之后再次加载预览,因为它可能是大量的图片我想动态地做它,所以我失败了。
我使用文件名作为字符串的字典:
//Creating a Bitmap so we can preview the Picture.
try
{
mainDrawingBackgroundBitmap = new Bitmap(filePathBackgroundBackgroundImage);
if(mainAllBitmapsDictionary.ContainsKey(mainDrawingBackgroundBitmap))
{
mainAllBitmapsDictionary.Remove(mainDrawingBackgroundBitmap);
}
mainAllBitmapsDictionary.Add(mainDrawingBackgroundBitmap,filePathBackgroundBackgroundImage);
}
现在我的位图和路径在字典中,稍后我以这种方式处理它们:
private void DisposeAllFiles()
{
foreach (var tempBitmap in mainAllBitmapsDictionary.Keys)
{
tempBitmap.Dispose();
}
}
哪个工作得很好。现在,当我尝试重新创建位图时:
private void RessurrectAllFiles()
{
foreach (var tempAllBitmap in mainAllBitmapsDictionary)
{
try
{
var tempBitmap = tempAllBitmap.Key;
tempBitmap = new Bitmap(tempAllBitmap.Value);
}
catch (ArgumentException ae)
{
}
}
}
他没有失败或抛出错误,字典甚至充满了正确的位图和字符串,但是这些似乎不再影响原始对象,所以字典是原样但是当我检查像这样的位图时: mainDrawingBackgroundBitmap,我只看到 ArgumentExceptions。
说白了,我哪里失败了?