如何防止计时器和套接字事件同时更改列表?

opc*_*0de 2 sockets delphi timer

我正在开发一个应用程序,我必须处理一些列表(插入,删除).问题是列表可能会遭受TTimer组件和TServerSocket的更改.

如何保护列表不被TTimer和TServerSocket同时更改?我应该使用线程吗?

dum*_*uch 6

计时器事件正在应用程序的主线程中运行.我不确定TServerSocket事件(可能是一个配置选项).

一般来说:如果两个访问是在主线程中运行,你并不需要一个关键部分,因为当第一个事件已经结束的其他事件只能触发(除非你打电话Application.ProcessMessages,你不应该这样).关键部分在这种情况下无论如何都不会起作用,因为它只会同步单独的线程.

如果它们在不同的线程中运行,则需要某种同步.关键部分是一个选项,其他包括互斥锁,自旋锁等.