我有一个列表包装器,其中包含两个Tstringlists和一个TClassList

我需要这样做是线程安全的,例如:

  • 不允许同时写入(应输入某种等待状态)
  • 不允许边写边阅读(反之亦然)(应输入某种等待状态)
  • 允许并发读取

  • 关于如何执行此操作的任何想法?我的直觉告诉我,它不仅需要一个关键部分,还可能需要一个信号量或“使用计数器”,也可能需要其中之一与CS结合使用。

    我只是不太确定从哪里开始-从英语的整体方法到伪代码,到delphi的实现或外部链接的任何事物都将不胜感激。

    最佳答案

    您应该看看sysutils.pas中声明的TMultiReadExclusiveWriteSynchronizer类。

    10-08 14:01