关于C#多线程绘制有关问题

关于C#多线程绘制问题
小弟在此遇到一个非常棘手的问题 
就是多线程同时访问一个Bitmap进行绘制
大概情况是这样的 我自己创造了一个Bitmap 然后设置了一个Timer 然后Timer里的方法是更改颜色的Alpha值实现一个呼吸的效果并且响应绘制

但是在这过程中遇到了几个问题
1. Timer速度很快 导致上一个绘制没有完成紧接着进行下一次绘制根据GDI的特性是不允许这样操作的 就会出现“对象正在其他地方使用”
2. 我后来使用lock进行锁定  发现可行  但是CPU却非常的高  具体原因不清楚  但是这样绘制出来的不会掉帧
3. 后来我又用Monitor.TryEnter进行验证如果锁住直接不处理 可是这样的就会遇到掉帧 频闪 的问题 说明有一次甚至多次绘制作废了 但是CPU的问题又解决了

现在我就想什么办法能解决这些问题
能让这个即实现呼吸效果不掉帧CPU同样也不会变高 
ps: Bitmap实例只有一个并没有每次绘制都生成
请各位大牛想想办法
------解决思路----------------------
timer其实在线程里回调的事件
你加了lock,一次没有处理完,下一次会阻塞住,排队等待执行,造成线程越来越多,都在阻塞
而如果遇到lock直接跳出,当然会丢帧

不能把大图切成小块,多线程同时进行绘制吗
------解决思路----------------------
用timer,那么每次进入timer,先停掉timer,然后处理,处理完再打开timer

用线程,cpu高,估计你代码问题,耗时的操作有没有放到线程里