我喜欢用Mutex:
先把要操作的变量定义为公有变量,然后再定一个Mutex变量:
i:Integer;
//假设这是要操作的变量
MyMutex:THandle;
是主窗口建立时初始化:
MyMutex:=CreateMutex(nil,false,nil);
在每一个要操作这个变量单元的implcation部分加上Uses语句:
Uses Main;
//假设你的主程序文件名为Main.pas
改写时(每一个要必定的地方都这样):
WaitforSingluObject(MyMutex,INFINITE);
//等待获得操作权
.... //改写操作
ReleaseMutex(MyMutex);