想请教onpaint()函数是单独线程在执行吗,Invaldate()函数刷新时调用onpaint,Invaldate()什么时候返回

想请问onpaint()函数是单独线程在执行吗,Invaldate()函数刷新时调用onpaint,Invaldate()什么时候返回?
假如我一个线程计算出来点的位置,用Invaldate()刷新,我这线程和onpaint()是顺序执行还是并行。
如果是并行,那就可能出现资源冲突,用临界区可以解决吗?
------解决思路----------------------
你的线程和onpaint是并行的,Invaldate()后就返回了,onpaint()执行,onpaint()会用到你的线程中的点的信息,"点的信息"这个需要保护, 定义get、set在其中用临界区保护防止冲突。
------解决思路----------------------
我记得,Invalidate只是Post消息啊,OnPaint不会马上被调用的,所以Invalidate和OnPaint不用同步控制