我对c#很陌生,我的程序有问题。
我想写一个程序,每隔3秒截图一次,并将其显示在一个图片框中。但在我的程序运行5分钟后,它使用了超过900mb的内存。有没有一种方法可以在每张图片显示后 "扫除 "内存?因为我打算一次运行这个程序长达40分钟。
在我的WindowsFormApp中,我有一个按钮,一个用来启动screngrab定时器,另一个用来停止它,我使用了FormDesigner工具箱中的Timer组件来制作倒计时3秒的定时器。
private void timer1_Tick(object sender, EventArgs e)
{
//do the screen grab and dispaly picture in picture box.
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bitmap);
g.CopyFromScreen(0, 0, -1150,50, bitmap.Size);
pictureBox1.Image = bitmap; }
当我试图使用Dispose()命令时,我的程序就崩溃了。当它崩溃的时候,图片框里有一个大的红色的X(请记住,我是一个非常新的c#)。
private void timer1_Tick(object sender, EventArgs e)
{
//do the screen grab and dispaly picture in picture box.
Bitmap bitmap = new
Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bitmap);
g.CopyFromScreen(0, 0, -1150,50, bitmap.Size);
pictureBox1.Image = bitmap;
bitmap.Dispose();
g. Dispose();
}