我有一个用 Delphi 编写的命令行工具,它的工作是在 XML 文件中插入一个节点,然后立即退出。我需要使该工具的多个实例能够同时执行并将节点插入到同一个 XML 中。
为了达到这个目的,我引入了一个简单的文件“mutex”——该工具在写入 XML 之前创建一个临时文件,然后在完成写入后删除临时文件。因此,如果另一个实例被执行,它会检查这个临时文件的存在并等待它被删除。然后它再次创建临时文件,写入 XML 并删除临时文件。
问题是只有当 2-3 个实例尝试同时写入 XML 文件时,它才能正常工作。当有更多实例时 - 其中一些只是永远等待并且永远不会将节点附加到 XML 中。
有没有更好的方法让它与同时运行和写入 XML 的大量实例一起工作?