关于多线程对Bit地图绘画的有关问题

关于多线程对Bitmap绘画的问题
我最开始使用多线程在主窗口的m_hWnd上绘画,是可以的(共有四个线程 每个线程画一种不同的线),后来想用双缓存,但是使用后就有问题了,我是这么做的,先按原来的逻辑把m_hWnd替换为新建的Bitmap 然后把Bitmap上的数据画到m_hWnd上,但是出现了一个问题,原来四个线程画完都会画出线来,现在 窗口上有时有四种线 有时有两种 有时有一种 有时有三种 都是随机出现 不知道是哪里有问题 还请各位高手看看,代码如下:
主窗口中代码:
CRect rect;
GetClientRect(&rect);
ShowMap::stScreenWidth = rect.Width(); //屏幕宽度
ShowMap::stScreenHeight = rect.Height() ; //屏幕高度
int i;
if(ShowMap::stBitMap == NULL)
{
ShowMap::stBitMap = new Bitmap(rect.Width(),rect.Height());
}
.......
线程调用的方法:
int ShowMap::DrawLine(int icount)
{
  Graphics graphics(ShowMap::stBitMap);
Pen newPen(Color(ShowMap::stRed,ShowMap::stGreen,ShowMap::stBlue),ShowMap::stLineWidth);
Pen newPen2(Color(ShowMap::stBlue,ShowMap::stGreen,ShowMap::stRed),ShowMap::stLineWidth);
  graphics.DrawLine(......);
}
下面是显示函数
void ShowMap::ShowAll()
{
Graphics graphics(* ShowMap::stHWnd);
graphics.DrawImage(ShowMap::stBitMap,0,0,0,0,ShowMap::stScreenWidth,ShowMap::stScreenHeight,UnitPixel);
}
 

------解决方案--------------------
楼主建议不要一次四个线程一起调试,你先关两个 试两个进程 看看什么原因吧,我认为这个应该和bitmap句柄 有关,我也不是很清楚 Bitmap够柄是否支持多个线程同时写入数据。
------解决方案--------------------
楼主建议不要一次四个线程一起调试,你先关两个 试两个进程 看看什么原因吧,我认为这个应该和bitmap句柄 有关,我也不是很清楚 Bitmap够柄是否支持多个线程同时写入数据。