我在winform from_load事件里开启了一个线程,用来实施监视功能。线程代码片段如下:
下面是手写代码,大约是这个意思。
unsafe
{
while(true)
{
//省略调用c++dll代码
if(b_mp!=null)
{
b_mp.Disponse();
b_mp=null;
}
if(b_mp==null)
{
b_mp=new Bitmap(w, h, PixelFormat.Format24bppRgb);
}
lock(b_mp)
{
BitmapData dataOut = b_mp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);//这里出错。第一次访问没问题,但是如果连续点击10几次就出现什么内存错误。。
}
}
}
请问大家有什么办法解决吗?急死人了。
b_mp.UnlockBits(dataOut) 有没有调用?