OnIdle()函数中的代码存在变量访问冲突怎么处理

OnIdle()函数中的代码存在变量访问冲突怎么办?
我的本意是想让程序在空闭时自动执行数据保存的操作,因此重载了OnIdle()函数。但程序运行时有时会出现异常,经调试发现原因是:OnIdle 中的代码执行一半时,正好人为对程序进行了操作,导致 OnIdle 函数中的操作和人工操作造成变量访问冲突!请问如何避免这一冲突?
------解决思路----------------------
多线程操作必须加锁。对冲突的那个变量加锁吧
------解决思路----------------------
怎么可能,OnIdle是在主线程里运行的,要么运行OnIdle要么运行事件处理,不会同时执行的