gpt4 book ai didi

c# - 不同 Windows PC 上的多个进程应如何同时使用存储在共享目录中的文件?

转载 作者:可可西里 更新时间:2023-11-01 10:08:15 27 4
gpt4 key购买 nike

问题:

我在同一 LAN 中的不同 PC(操作系统:Windows XP、Windows 7)上运行同一 C# 应用程序的多个实例。我必须在他们之间共享一些配置数据。每个进程都必须具有对数据的读写访问权限。我的雇主坚持将这些共享数据存储在一个文件中,该文件位于其中一台 PC 的共享目录中。

可能的解决方案:

  1. Exclusive file opening : 数据存储在 TXT 文件中(二进制文件的序列化也是一种选择)。每个进程在尝试打开文件时都使用 File.OpenFileShare.None。获取 IOException 意味着该文件已在使用中,因此进程必须 wait and try again later .
  2. SQL Server CE embedded DB :数据存储在 SDF 文件中。该引擎最多可以处理 256 个并发连接 (v3.5 SP2),这绰绰有余。
  3. SQLite embedded DB :数据存储在 SQLite 数据库文件中。 documentation表示 SQLite 可以工作,但在网络共享上使用时可能不可靠。
  4. 其他?

执行此操作的首选方法是什么?

最佳答案

不知道这是否是最好的方法,但我很久以前就用 C 语言做过,它对我来说效果很好。

每个进程都将读取并创建文件的个人副本,然后对其进行处理。

在固定的时刻(在进程终止或通过某些 UI 或任何你喜欢的方式触发时)每个进程都会将其文件副本发送到负责在共享目录中重建原始文件并向其他进程发送信号的主进程他们需要重新加载的过程。

每个进程重新加载文件(包含来自所有其他进程的信息)。

当然这个解决方案要求文件写入进程知道如何重建文件以及如何解决冲突(但这取决于数据格式)

关于c# - 不同 Windows PC 上的多个进程应如何同时使用存储在共享目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com