我对此一直有很大的问题。这是我的代码。
int frame = 0;
//This is a wpf button event
private void up_Click(object sender, RoutedEventArgs e)
{
frame++;
LoadPic();
}
private void LoadPic()
{
string fn = @"C:\Folder\image" + (frame % 2).ToString() + ".png";
Bitmap bmp = new Bitmap(302, 170);
bmp.Save(fn);
bmp.Dispose();
//Picebox is a wpf Image control
Picbox.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri(fn));
}
private void down_Click(object sender, RoutedEventArgs e)
{
frame--;
LoadPic();
}
当我启动程序时,会弹出一个 wpf 窗口。代码中有两个带有事件的按钮。
当我按两次向上按钮时,它工作正常。这会将两个 PNG 保存到位置
“C:\Folder\image0.png”和“C:\Folder\image1.png”
第三次按下按钮时,它应该再次将其保存到“C:\Folder\image0.png”。相反,它给出了异常“GDI+ 中发生一般错误”。
我之前遇到过类似的问题,并通过添加这两行来解决它:
GC.Collect();
GC.WaitForPendingFinalizers();
这次没有用。