вы можете использовать hashmap Hashtable data, например,
Hashtable temp = new Hashtable();
temp.Add(object.id, object);
и удалять данные, вы можете использовать функцию удаления, например:
temp.Remove(object.id);
Из MSDN : «Файл остается заблокированным, пока изображение не будет удалено». - так что да, это должно быть исправлено с помощью:
using (Image imgInFile ...) { ... }
(В качестве примечания я бы ограничил попытку try только вызовами .Save () и / или SystemParametersInfo ())
Как только вы выйдете из с помощью блока , все объекты, инициализированные в нем, будут удалены. В вашем случае объекты будут удалены, что снимет блокировку файла.
Вы должны удалить вручную (либо через , используя оператор , либо вызвав .Dispose () на объекте) любые неуправляемые вызовы функций COM или Windows API (т. е. при использовании взаимодействия).
Вот, что у меня есть, пожалуйста, дайте мне знать, если вы увидите что-нибудь, что я мог бы поднять. Но он работает как чемпион, поэтому я очень счастлив.
private void SetWallpaper(string path)
{
if (File.Exists(path))
{
Image imgInFile = Image.FromFile(path);
try
{
imgInFile.Save(SaveFile, ImageFormat.Bmp);
SystemParametersInfo(SPI_SETDESKWALLPAPER, 3, SaveFile, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
}
catch
{
MessageBox.Show("error in setting the wallpaper");
}
finally
{
imgInFile.Dispose();
}
}
Else
{
messagebox.show("Error with path: "+path+" Not found or in use");
}
}