почему это кодирует, блокируют мои файлы?

вы можете использовать hashmap Hashtable data, например,

Hashtable temp = new Hashtable();
temp.Add(object.id, object);

и удалять данные, вы можете использовать функцию удаления, например:

temp.Remove(object.id);
5
задан 2 revs 30 April 2009 в 04:52
поделиться

3 ответа

Из MSDN : «Файл остается заблокированным, пока изображение не будет удалено». - так что да, это должно быть исправлено с помощью:

using (Image imgInFile ...) { ... }

(В качестве примечания я бы ограничил попытку try только вызовами .Save () и / или SystemParametersInfo ())

15
ответ дан 18 December 2019 в 10:48
поделиться

Как только вы выйдете из с помощью блока , все объекты, инициализированные в нем, будут удалены. В вашем случае объекты будут удалены, что снимет блокировку файла.

Вы должны удалить вручную (либо через , используя оператор , либо вызвав .Dispose () на объекте) любые неуправляемые вызовы функций COM или Windows API (т. е. при использовании взаимодействия).

1
ответ дан 18 December 2019 в 10:48
поделиться

Вот, что у меня есть, пожалуйста, дайте мне знать, если вы увидите что-нибудь, что я мог бы поднять. Но он работает как чемпион, поэтому я очень счастлив.

                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");
                    }
                }
0
ответ дан 18 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: