我正在创建一个壁纸更换器,根据用户设置的某些条件选择最新的壁纸。一切都应该工作正常,事实上我发现错误是由于在再次设置之前没有处理图像所以我这样做但它仍然发生。
以下是我的代码片段,它会生成两个图像副本。一个用于历史网格作为缩略图,一个用于以后用户想要保存图像。
WebClient wc = new WebClient();
byte[] bytes = wc.DownloadData(url);
if (bytes.Count().Equals(0))
{
changeWallpaperTimer.Enabled = true;
}
else
{
MemoryStream ms = new MemoryStream(bytes);
memoryStreamImage = System.Drawing.Image.FromStream(ms);
ms.Dispose();
ms.Close();
if (currentWallpaper != null)
{
currentWallpaper.Dispose();
}
currentWallpaper = new Bitmap(memoryStreamImage);
dataGridNumber += 1;
historyDataGrid.Rows.Insert(0, new Bitmap(memoryStreamImage, new Size(100, 100)), title, dataGridNumber, threadID);
memoryStreamImage.Dispose();
}